【Linux】SSH相关命令

【Linux】SSH相关命令

  • 关于SSH
    SSH 为 Secure Shell 的缩写,SSH 为建立在应用层传输层基础上的安全协议。

    SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

  • SSH的划分层次
    传输层协议 [SSH-TRANS]

    提供了服务器认证,保密性及完整性。SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。该协议中的认证基于主机,并且该协议不执行用户认证。

    用户认证协议 [SSH-USERAUTH]

    用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

    连接协议 [SSH-CONNECT]

    它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

  • ssh命令
    # ssh 192.168.28.128

    登录远程服务器
    

    # ssh -l root 192.168.28.128
    # ssh [email protected]

    指定用户登录远程服务器
    -l 指定连接远程服务器的登录用户名
    

    # ssh -l root 192.168.28.128 /sbin/fdisk -l

    查看远程服务器分区列表
    

    # ssh -2 -l root 192.168.28.128

    强制使用ssh协议版本2
    -1 强制使用ssh协议版本1
    -2 强制使用ssh协议版本2
    -4 强制使用IPv4地址
    -6 强制使用IPv6地址
    

    # ssh -A -l root 192.168.28.128

    -A 开启认证代理连接转发功能
    -a 关闭认证代理连接转发功能
    

    # ssh -p 22 [email protected]

    指定端口登录远程服务器
    -p 指定远程服务器上的端口
    

    # ssh -X [email protected]

    在远程主机运行一个图形界面的程序
    -X 开启X11转发功能
    -x 关闭X11转发功能
    -y 开启信任X11转发功能
    
    -b 使用本机指定的地址作为对位连接的源IP地址
    -F 指定ssh指令的配置文件,默认配置文件为/etc/ssh/ssh_config
    -f 后台执行ssh指令
    -g 允许远程主机连接本机的转发端口
    -i 指定身份文件(即私钥文件)
    -N 不执行远程指令
    -o 指定配置选项
    -q 静默模式,所有的警告和诊断信息被禁止输出
    
  • sshd命令
    # systemctl start sshd

    启动sshd服务
    

    # /sbin/sshd -d

    以调试模式运行sshd
    

    # /sbin/sshd -t

    以测试模式运行sshd
    

    # systemctl status sshd

    查看sshd服务状态
    
    -4 强制使用IPv4地址
    -6 强制使用IPv6地址
    -D 以非后台守护进程的方式运行服务器
    -e 将错误发送到标准错误设备,而不是将其发送到系统日志
    -f 指定服务器的配置文件
    -g 指定客户端登录的过期时间(默认时间为120秒)
    -h 指定读取主机key文件
    -i sshd以inetd方式运行
    -o 指定sshd的配置选项
    -p 指定使用的端口号
    -q 静默模式,没有任何信息写入系统日志
    
  • ssh-keygen命令
    为SSH生成、管理和转换认证密钥,支持RSA和DSA。
    # ssh-keygen

    创建一个默认密钥
    

    # ssh-keygen -t rsa -C "注释"

    指定要创建的密钥类型并添加注释
    -t 指定要创建的密钥类型
    -C 添加注释
    

    # ssh-keygen -e

    读取openssh的私钥或者公钥文件
    -e 读取openssh的私钥或者公钥文件
    
    -b 指定密钥长度
    -f 指定用来保存密钥的文件名
    -i 读取未加密的ssh-v2兼容的私钥/公钥文件,
       然后在标准输出设备上显示openssh兼容的私钥/公钥
    
    -l 显示公钥文件的指纹数据
    -N 提供一个新密语
    -P 提供(旧)密语
    -q 静默模式
    
  • ssh-keyscan命令
    # ssh-keyscan -t rsa 192.168.28.128

    显示主机的RSA主机公钥
    -t 指定要创建的密钥类型
    

    # ssh-keyscan -v 192.168.28.128

    收集主机ssh公钥,并输出调试信息
    -v 信息模式,打印调试信息
    
    -4 强制使用IPv4地址
    -6 强制使用IPv6地址
    -f 从指定文件中读取“地址列表、名字列表”对
    -p 指定连接远程主机的端口
    -T 指定连接尝试的超时时间
    
  • ssh-copy-id命令
    # ssh-copy-id [email protected]

    把本地主机的公钥复制到远程主机
    

    # ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

    拷贝本机指定公钥到远程主机
    -i 指定认证文件(公钥)
    
    -f 强制模式
    -n 测试,不实际替换
    -p 指定端口
    -o option 指定其它ssh参数
    
  • ssh-agent命令
    ssh-agent是一个密钥管理器。
    # ssh-agent

    本身的环境和变量
    

    # ssh-agent -d

    调试模式
    

    # ssh-agent -k

    把ssh-agent进程结束
    

    # ssh-agent -c

    生成C-shell风格的命令输出
    
    -a 绑定地址到Unix域套接字中
    -s 生成Bourne shell 风格的命令输出
    -t 设置默认值添加到代理的身份最大时间
    
  • ssh-add命令
    把专用密钥添加到ssh-agent的高速缓存中,位置在/usr/bin/ssh-add
    # ssh-add ~/.ssh/id_rsa

    把专用密钥添加到ssh-agent的高速缓存中
    

    # ssh-add -l

    查看ssh-agent中的密钥
    

    # ssh-add -L

    显示ssh-agent中的公钥
    

    # ssh-add -d ~/.ssh/id_rsa.pub

    从ssh-agent中删除密钥
    -d 从ssh-agent中删除密钥
    

    # ssh-add -x

    对ssh-agent进行加锁
    -x 对ssh-agent进行加锁
    
    -D 删除ssh-agent中的所有密钥
    -e pkcs11:删除PKCS
    -s pkcs11:添加PKCS
    -t 对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
    -X:对ssh-agent进行解锁
    

你可能感兴趣的:(Linux,linux,ssh,网络安全)