• Linux命令之远程登录与执行远程主机命令


    实现远程登录的命令

    ssh、telnet、rlogin

    (1)ssh命令

    ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。ssh命令用于远程登录上Linux主机。

    常用格式:ssh [-l login_name] [-p port] [user@]hostname
    更详细的可以用ssh -h查看。

    语法:

    ssh(选项)(参数)

    选项:

    -1:强制使用ssh协议版本1; 
    -2:强制使用ssh协议版本2; 
    -4:强制使用IPv4地址; 
    -6:强制使用IPv6地址; 
    -A:开启认证代理连接转发功能; 
    -a:关闭认证代理连接转发功能; 
    -b:使用本机指定地址作为对应连接的源ip地址; 
    -C:请求压缩所有数据; 
    -F:指定ssh指令的配置文件; 
    -f:后台执行ssh指令; 
    -g:允许远程主机连接主机的转发端口; 
    -i:指定身份文件; 
    -l:指定连接远程服务器登录用户名; 
    -N:不执行远程指令; 
    -o:指定配置选项; 
    -p:指定远程服务器上的端口; 
    -q:静默模式; 
    -X:开启X11转发功能; 
    -x:关闭X11转发功能; 
    -y:开启信任X11转发功能。

    参数:

    远程主机:指定要连接的远程ssh服务器; 
    指令:要在远程ssh服务器上执行的指令。

    举例:

    不指定用户:

    ssh 192.168.0.11

    指定用户:

    ssh -l root 192.168.0.11
    ssh root@192.168.0.11

    如果修改过ssh登录端口的可以:

    ssh -p 12333 192.168.0.11
    ssh -l root -p 12333 216.230.230.114
    ssh -p 12333 root@216.230.230.114

    另外修改配置文件/etc/ssh/sshd_config,可以改ssh登录端口和禁止root登录。改端口可以防止被端口扫描。

    编辑配置文件:

    vim /etc/ssh/sshd_config

    找到#Port 22,去掉注释,修改成一个五位的端口:

    Port 12333

    找到#PermitRootLogin yes,去掉注释,修改为:

    PermitRootLogin no

    重启sshd服务:

    service sshd restart

    当你使用ssh从本机登录到远程主机时,你可能希望切换到本地做一些操作,然后再重新回到远程主机。这个时候,你不需要中断ssh连接,只需要按照如下步骤操作即可:

    要临时回到本地主机,输入退出符号:“~”与“Control-Z”组合。当你输入“~”你不会立即在屏幕上看到,当你按下<Control-Z>并且按回车之后才一起显示。

    (2)telnet命令

    telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。但是,telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。但仍然有很多别的系统可能采用了telnet方式来提供远程登录,因此弄清楚telnet客户端的使用方式仍是很有必要的。telnet命令还可做别的用途,比如确定远程服务的状态,确定远程服务器的某个端口是否能访问。

    命令格式:

    telnet[参数][主机]

    命令功能:

    执行telnet指令开启终端机阶段作业,并登入远端主机。

    命令参数:

    -8 允许使用8位字符资料,包括输入与输出。
    -a 尝试自动登入远端系统。
    -b<主机别名> 使用别名指定远端主机名称。
    -c 不读取用户专属目录里的.telnetrc文件。
    -d 启动排错模式。
    -e<脱离字符> 设置脱离字符。
    -E 滤除脱离字符。
    -f 此参数的效果和指定"-F"参数相同。
    -F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
    -k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
    -K 不自动登入远端主机。
    -l<用户名称> 指定要登入远端主机的用户名称。
    -L 允许输出8位字符资料。
    -n<记录文件> 指定文件记录相关信息。
    -r 使用类似rlogin指令的用户界面。
    -S<服务类型> 设置telnet连线所需的IP TOS信息。
    -x 假设主机有支持数据加密的功能,就使用它。
    -X<认证形态> 关闭指定的认证形态。

    示例:

    正常telnet

    telnet 192.168.120.204

    输出:

    [root@andy ~]# telnet 192.168.120.204
    Trying 192.168.120.204...
    Connected to 192.168.120.204 (192.168.120.204).
    Escape character is '^]'.
        localhost (Linux release 2.6.18-274.18.1.el5 #1 SMP Thu Feb 9 12:45:44 EST 2012) (1)
    login: root
    Password: 
    Login incorrect

    说明:一般情况下不允许root从远程登录,可以先用普通账号登录,然后再用su -切到root用户。

    (3)rlogin命令

    rlogin命令用于从当前终端登录到远程Linux主机。

    格式:rlogin RemoteHost [ -e Character ] [ -8 ] [ -l User ] [ -f -F ] [ -k realm]
    语法:

    rlogin(选项)(参数)

    选项:

    -8:允许输入8位字符数据; 
    -e脱离字符>:设置脱离字符; 
    -E:滤除脱离字符; 
    -l用户名称>:指定要登入远端主机的用户名称; 
    -L:使用litout模式进行远端登入阶段操作。

    参数:

    远程主机:指定要登录的远程主机(ip地址或者域名)。

    实例

    显示rlogin服务是否开启

    # chkconfig --list //检测rlogin服务是否开启

    开启rlogin服务

    # chkconfig rlogin on //开启rlogin服务

    登陆远程主机

    # rlogin 192.168.1.88
    Password:
    Password:
    Login incorrect
    Login:root
    Passwd:
    Login incorrect
    Login:kk
    Passwd:

    指定用户名登陆远程主机

    # rlogin 192.168.1.88 -l hnlinux
    
    Passord:
    Last login:Mon May 28 15:30:25 from 192.168.1.88
    
    # 

    执行远程主机命令的命令

    (1)rexec命令
    rexec命令用于在指定的远程Linux系统主机上执行命令,向远程rexec服务器发出执行命令的请求。
    语法:

    rexec(选项)(参数)

    选项:

    -a:表示远程命令的标准错误与标准输出相同,不支持发送任意信号到远程进程; 
    -l<用户名>:指定连接远程rexec服务器的用户名; 
    -p<密码>:指定连接远程rexec服务器的密码; 
    -n:明确地提示输入用户名和密码。

    参数:

    远程主机:指定远程主机(ip地址或主机名); 命令:指定需要在远程主机上执行的命令。

    实例:

    要在一个远程主机上执行date命令,输入:

    rexec host1 date

    (2)rsh命令和remsh 命令

    rsh是"remote shell"(远程 shell)的缩写。 
    该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令。(执行远程主机上指定的命令或登录至远程主机。)
    如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上。 remsh 命令使您可以在远程系统上执行命令,而无需登录到该系统。
    rsh命令的一般格式是:

    rsh [-Kdnx] [-k realm] [-l username] host [command]

    一般常用的格式是:

    rsh host [command]

    command可以是从shell提示符下键人的任何Linux命令。 
    rsh命令中各选项的含义如下: 

    -K 关闭所有的Kerbero确认。该选项只在与使用Kerbero确认的主机连接时才使用。
    -d 打开与远程主机进行通信的TCP sockets的socket调试。要了解更多的信息,请查阅setsockopt的联机帮助。
    -k 请求rsh获得在指定区域内的远程主机的Kerberos许可,而不是获得由krb_relmofhost(3)确定的远程主机区域内的远程主机的Kerberos许可。 
    -l 缺省情况下,远程用户名与本地用户名相同。本选项允许指定远程用户名,如果指定了远程用户名,则使用Kerberos 确认,与在rlogin命令中一样。 
    -n 重定向来自特殊设备/dev/null的输入。
    -x 为传送的所有数据打开DES加密。这会影响响应时间和CPU利用率,但是可以提高安全性。

    Linux把标准输入放入rsh命令中, 并把它拷贝到要远程执行的命令的标准输入中。它把远程命令的标准输出拷贝到rsh的标准输出中。它还把远程标准错误拷贝到本地标准错误文件中。
    任何退出、中止和中断信号都被送到远程命令中。当远程命令终止了,rsh也就终止了。

  • 相关阅读:
    java.lang.ClassNotFoundException: org.jaxen.JaxenException
    hdu 4882 ZCC Loves Codefires(贪心)
    C++ STL 源代码学习(之deque篇)
    算法导论学习笔记(2)-归并排序
    机器学习方法:回归(一):线性回归Linear regression
    HDU 2028 Lowest Common Multiple Plus
    C++11新特性应用--实现延时求值(std::function和std::bind)
    大数减法
    hive 运行sqlclient异常
    Oracle 12c agent install for windows
  • 原文地址:https://www.cnblogs.com/cyjaysun/p/4435913.html
Copyright © 2020-2023  润新知