【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 root@192.168.28.128
指定用户登录远程服务器 -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 root@192.168.28.128
指定端口登录远程服务器 -p 指定远程服务器上的端口
# ssh -X root@192.168.28.128
在远程主机运行一个图形界面的程序 -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 root@192.168.28.128
把本地主机的公钥复制到远程主机
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.28.128
拷贝本机指定公钥到远程主机 -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进行解锁