zoukankan      html  css  js  c++  java
  • ssh相关命令

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

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

    ssh使用
    1、查看SSH客户端版本
    有的时候需要确认一下SSH客户端及其相应的版本号。使用ssh -V命令可以得到版本号。需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用OpenSSH:
    # ssh -V
    OpenSSH_6.6.1p1, OpenSSL 1.0.1e-fips 11 Feb 2013

    2、连接到远程主机:
    # hostname
    lianxi
    # ssh 192.168.120.135
    The authenticity of host '192.168.120.135 (192.168.120.135)' can't be established.
    ECDSA key fingerprint is a1:54:24:18:77:01:db:c7:8c:ac:de:8f:c4:81:01:7a.
    Are you sure you want to continue connecting (yes/no)? yes
    第一次连接目标主机时,ssh 会让你确认目标主机的真实性。如果你回答的是 NO,SSH 将不会继续连接,只有回答 Yes才会继续。
    Warning: Permanently added '192.168.120.135' (ECDSA) to the list of known hosts.
    root@192.168.120.135's password: 
    Last failed login: Mon Apr 10 13:54:09 CST 2017 from :0 on :0
    There was 1 failed login attempt since the last successful login.
    Last login: Mon Apr 10 13:08:44 2017
    # hostname
    nisserver
    # exit
    登出
    Connection to 192.168.120.135 closed.

    # ssh root@192.168.120.120
    root@192.168.120.120's password: 
    Last login: Tue Apr 11 14:00:20 2017 from 192.168.120.120
    # hostname
    lianxi
    # exit
    登出
    Connection to 192.168.120.120 closed.
    # hostname
    shiyan

    # hostname
    shiyan
    # ssh 192.168.120.120 -l root
    root@192.168.120.120's password: 
    Last login: Tue Apr 11 14:02:34 2017 from 192.168.120.114
    # hostname
    lianxi

    说明:以上两种方式都可以远程登录到远程主机,server代表远程主机,name为登录远程主机的用户名。
    # hostname
    lianxi
    # ssh 192.168.120.135
    The authenticity of host '192.168.120.135 (192.168.120.135)' can't be established.
    ECDSA key fingerprint is a1:54:24:18:77:01:db:c7:8c:ac:de:8f:c4:81:01:7a.
    Are you sure you want to continue connecting (yes/no)? yes
    第一次连接目标主机时,ssh 会让你确认目标主机的真实性。如果你回答的是 NO,SSH 将不会继续连接,只有回答 Yes才会继续。
    Warning: Permanently added '192.168.120.135' (ECDSA) to the list of known hosts.
    root@192.168.120.135's password: 
    Last failed login: Mon Apr 10 13:54:09 CST 2017 from :0 on :0
    There was 1 failed login attempt since the last successful login.
    Last login: Mon Apr 10 13:08:44 2017
    # hostname
    nisserver
    # exit
    登出
    Connection to 192.168.120.135 closed.

    3、连接到远程主机指定的端口:
    # ssh root@192.168.120.120 -p 6222
    ssh 192.168.120.120 -l root -p 6222
    说明:p 参数指定端口号,通常在路由里做端口映射时,我们不会把22端口直接映射出去,而是转换成其他端口号,这时就需要使用-p端口号命令格式。
    要改变端口号,我们需要修改 /etc/ssh/ssh_config 文件,找到此行:
    Port 22
    把它换成其他的端口号,比如上面示例的 6222 端口,然后重启 SSH 服务。

    4、通过远程主机1跳到远程主机2:
    # ssh -t 192.168.120.120 ssh 192.168.120.135
    root@192.168.120.120's password: 
    root@192.168.120.135's password: 
    Last login: Tue Apr 11 14:16:45 2017 from 192.168.120.120
    # hostname
    nisserver
    # exit
    登出
    Connection to 192.168.120.135 closed.
    Connection to 192.168.120.120 closed.
    # hostname
    shiyan
    说明:当远程主机remoteserver2无法直接到达时,可以使用-t参数,然后由remoteserver1跳转到remoteserver2。在此过程中要先输入remoteserver1的密码,然后再输入remoteserver2的密码,然后就可以操作remoteserver2了。

    5、通过SSH运行远程shell命令:

    [root@lianxi ~]# ls /root/
    anaconda-ks.cfg RPM-GPG-KEY.art.txt RPM-GPG-KEY.atomicorp.txt
    [root@shiyan ~]# ssh -l root 192.168.120.120 ls /root/
    root@192.168.120.120's password: 
    anaconda-ks.cfg
    RPM-GPG-KEY.art.txt
    RPM-GPG-KEY.atomicorp.txt

    [root@lianxi ~]# ls /root/ && ls /etc/selinux/
    anaconda-ks.cfg RPM-GPG-KEY.art.txt RPM-GPG-KEY.atomicorp.txt
    config semanage.conf targeted
    [root@shiyan ~]# ssh -l root 192.168.120.120 "ls /root/ && ls /etc/selinux" 
    root@192.168.120.120's password: 
    anaconda-ks.cfg
    RPM-GPG-KEY.art.txt
    RPM-GPG-KEY.atomicorp.txt
    config
    semanage.conf
    targeted
    说明:连接到远程主机,并执行远程主机的command命令

    对所有数据请求压缩
    有了这个选项,所有通过 SSH 发送或接收的数据将会被压缩,并且任然是加密的。要使用 SSH 的压缩功能,使用 -C 选项。
    # ssh -C 192.168.120.135
    如果你的连网速度很慢的话,使用的是像 LAN 或其它更高级网络的话,压缩反而会降低你的传输速度。可以使用 -o 选项加上压缩级别参数来控制压缩的级别,但这个选项仅仅只在 SSH-1 下起作用。


    绑定源地址
    如果你的客户端有多于两个以上的 IP 地址,你就不可能分得清楚在使用哪一个 IP 连接到 SSH 服务器。
    我们可以使用 -b 选项来指定一个IP 地址。这个 IP 将会被使用做建立连接的源地址。
    # ssh -b 192.168.0.200 -l leni 192.168.0.103

    使用其他配置文件
    要使用指定的配置文件,可以使用 -F 选项。
    # ssh -F /home/pungki/my_ssh_config 192.168.0.101

    打开调试模式
    因为某些原因,我们想要追踪调试我们建立的 SSH 连接情况。SSH 提供的 -v 选项参数正是为此而设的。
    # ssh -v 192.168.120.135
    OpenSSH_6.6.1, OpenSSL 1.0.1e-fips 11 Feb 2013
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: /etc/ssh/ssh_config line 56: Applying options for *
    debug1: Connecting to 192.168.120.135 [192.168.120.135] port 22.
    debug1: Connection established.
    ... ...
    root@192.168.120.135's password:

    ssh-keygen命令用于为“ssh”生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。 
    语法 
    ssh-keygen(选项) 
    选项 
    -b:指定密钥长度; -e:读取openssh的私钥或者公钥文件; 
    -C:添加注释; -f:指定用来保存密钥的文件名; 
    -l:显示公钥文件的指纹数据; -i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥; 
    -N:提供一个新密语; -P:提供(旧)密语; 
    -q:静默模式; -t:指定要创建的密钥类型。

    # ssh-keygen -t rsa

    ssh-copy-id命令
    可以把本地主机的公钥复制到远程主机的authorized_keys文件上,ssh-copy-id命令也会给远程主机的用户主目录(home)和~/.ssh, 和~/.ssh/authorized_keys设置合适的权限。 语法 
    ssh-copy-id [-i [identity_file]] [user@]machine 
    选项 
    -i:指定公钥文件 
    实例 
    1、把本地的ssh公钥文件安装到远程主机对应的账户下: 
    ssh-copy-id user@server 
    ssh-copy-id -i ~/.ssh/id_rsa.pub user@server

    ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。 
    语法 
    ssh-add [-cDdLlXx] [-t life] [file ...] 
    ssh-add -s pkcs11 
    ssh-add -e pkcs11 
    选项 
    -D:删除ssh-agent中的所有密钥. -d:从ssh-agent中的删除密钥 
    -e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。 -s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。 
    -L:显示ssh-agent中的公钥 -l:显示ssh-agent中的密钥 
    -t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥 -X:对ssh-agent进行解锁 
    -x:对ssh-agent进行加锁

    实例 
    1、把专用密钥添加到 ssh-agent 的高速缓存中: 
    ssh-add ~/.ssh/id_dsa 
    2、从ssh-agent中删除密钥: 
    ssh-add -d ~/.ssh/id_xxx.pub 
    3、查看ssh-agent中的密钥: 
    ssh-add -l

    sftp-server命令
    是一个“sftp”协议的服务器端程序,它使用加密的方式进行文件传输。 
    sftp-server - SFTP 服务器子系统
    语法
    sftp-server [-f log_facility] [-l log_level]
    描述
    sftp-server 是一个 SFTP 协议的服务端程序,它要求客户端从 stdin 发起请求,并将应答发送到 stdout 。
    一般不直接调用 sftp-server ,而是通过sshd配置文件中的 Subsystem 指令调用。
    sftp-server 的命令行选项应当在 sshd 配置文件中的 Subsystem 指令中设置。

    ssh-agent命令
    是一种控制用来保存公钥身份验证所使用的私钥的程序。ssh-agent在X会话或登录会话之初启动,所有其他窗口或程序则以客户端程序的身份启动并加入到ssh-agent程序中。通过使用环境变量,可定位代理并在登录到其他使用ssh机器上时使用代理自动进行身份验证。 
    其实ssh-agent就是一个密钥管理器,运行ssh-agent以后,使用ssh-add将私钥交给ssh-agent保管,其他程序需要身份验证的时候可以将验证申请交给ssh-agent来完成整个认证过程。
    语法 
    ssh-agent [-c | -s] [-d] [-a bind_address] [-t life] [command [arg ...]] ssh-agent [-c | -s] -k 
    选项 
    -a bind_address:bind the agent to the UNIX-domain socket bind_address. 
    -c:生成C-shell风格的命令输出。 
    -d:调试模式。 
    -k:把ssh-agent进程杀掉。 
    -s:生成Bourne shell 风格的命令输出。 
    -t life:设置默认值添加到代理人的身份最大寿命。 
    实例: 
    运行ssh-agent,它会打印出来它使用的环境和变量。
    # ssh-agent
    SSH_AUTH_SOCK=/tmp/ssh-SeBuaIs1LFwc/agent.11523; export SSH_AUTH_SOCK;
    SSH_AGENT_PID=11524; export SSH_AGENT_PID;
    echo Agent pid 11524;

    sshd命令
    是openssh软件套件中的服务器守护进程。 
    语法 
    sshd(选项) 
    选项 
    -4:强制使用IPv4地址; -6:强制使用IPv6地址; 
    -D:以后台守护进程方式运行服务器; -d:调试模式; 
    -f:指定服务器的配置文件; -e:将错误发送到标准错误设备,而不是将其发送到系统日志; 
    -h:指定读取主机key文件; -g:指定客户端登录时的过期时间,如果在此期限内,用户没有正确认证,则服务器断开次客户端的连接; 
    -i:ssh以inetd方式运行; -o:指定ssh的配置选项; 
    -p:静默模式,没有任何信息写入日志; -t:测试模式。


    ssh-keyscan命令
    是一个收集大量主机公钥的使用工具。 
    语法 
    ssh-keyscan(选项)(参数) 
    选项
    -4:强制使用IPv4地址; 
    -6:强制使用IPv6地址; 
    -f:从指定文件中读取“地址列表/名字列表”; 
    -p:指定连接远程主机的端口; 
    -T:指定连接尝试的超时时间; 
    -t:指定要创建的密钥类型; 
    -v:信息模式,打印调试信息。 
    参数 
    主机列表:指定要收集公钥的主机列表。

    sftp命令
    是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还支持公钥认证和压缩等功能。 
    语法 
    sftp(选项)(参数) 
    选项 
    -B:指定传输文件时缓冲区的大小; 
    -l:使用ssh协议版本1; 
    -b:指定批处理文件; 
    -C:使用压缩; 
    -o:指定ssh选项; 
    -F:指定ssh配置文件; 
    -R:指定一次可以容忍多少请求数; 
    -v:升高日志等级。 
    参数 
    目标主机:指定sftp服务器ip地址或者主机名。

  • 相关阅读:
    Asp.net相关知识和经验的碎片化记录
    JavaScript相关知识和经验的碎片化记录
    HTML相关知识和经验的碎片化记录
    CSS相关知识和经验的碎片化记录
    C# 实现文件(夹)在ftp服务器间的同步【无需将文件(夹)保存到本地】
    js中call、apply、bind的用法
    js中的数组对象排序
    CSS3图片轮播效果
    HTML5 canvas制作童年的回忆大风车
    js实现滑动器效果
  • 原文地址:https://www.cnblogs.com/thiaoqueen/p/9950066.html
Copyright © 2011-2022 走看看