ssh命令
ssh命令是 openssh 套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器。
语法
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转发功能。
-T: 测试连接
参数
- 远程主机:指定要连接的远程 ssh 服务器;
- 指令:要在远程ssh服务器上执行的指令。
工作流程:
这里我们可以使用 -i
指定私钥文件
|
|
ssh-keygen命令
ssh-keygen命令用于为"ssh"生成、管理和转换认证密钥,它支持RSA和DSA两种认证密钥。
语法
ssh-keygen(选项)
选项
-b:指定密钥长度;
-e:读取openssh的私钥或者公钥文件;
-C:添加注释;
-f:指定用来保存密钥的文件名;
-i:读取未加密的ssh-v2兼容的私钥/公钥文件,然后在标准输出设备上显示openssh兼容的私钥/公钥;
-l:显示公钥文件的指纹数据;
-N:提供一个新密码;
-P:更改(旧)密码;
-q:静默模式;
-t:指定要创建的密钥类型。
为私钥添加或更改密码:
|
|
ssh-agent命令
ssh agent ,意为 ssh 代理,是一个密钥管理器,用来管理一个多个密钥,并为其他需要使用 ssh key 的程序提供代理。
语法
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
方式一:
在子shell
中打开ssh-agent,执行该命令后我们也会进入到子shell中;退出子shell自动结束代理(这是一种安全机制)。
|
|
方式二:
通过当前shell
下开启一个ssh-agent进程,为了安全考虑退出当前shell之前可以使用ssh-agent -k
关闭对应代理(只有在当前shell中还可使用上述命令关闭对应代理,在其它shell中就只能使用kill命令了)。
|
|
这两种启动方式 的 另一种解释:启动ssh-agent,您可以创建一个继承SSH_AUTH_SOCK环境变量的子进程,也可以将其作为守护进程运行。
ssh-add命令
ssh-add命令 ,作用:是把专用密钥添加到 ssh-agent 的高速缓存中。
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
更多
|
|
ssh-copy-id命令
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-keyscan命令
ssh-keyscan命令是一个收集大量主机公钥的使用工具。
语法
ssh-keyscan(选项)(参数)
选项
-4:强制使用IPv4地址;
-6:强制使用IPv6地址;
-f:从指定文件中读取"地址列表/名字列表";
-p:指定连接远程主机的端口;
-T:指定连接尝试的超时时间;
-t:指定要创建的密钥类型;
-v:信息模式,打印调试信息。
参数
主机列表:指定要收集公钥的主机列表。
本文整合于下面文章: