ssh-keygen 命令参数说明
1 2 3 4 5 6 7 8 |
-b : bits,指定密钥长度。对于RSA密钥,最小要求768位,默认是2048位。 -C : comment,提供一个新注释。 -f : filename,指定密钥文件名。 -t : type,指定要创建的密钥类型。可以使用:"rsa1"(SSH-1) "rsa"(SSH-2) "dsa"(SSH-2)。 -e : 读取OpenSSH的私钥或公钥文件,并以RFC4716 SSH公钥文件格式输出。该选项能够为多种商业版本的SSH中输出密钥。 -i : 读取未加密的SSH-2兼容的私钥/公钥文件,然后在stdout显示OpenSSH兼容的私钥/公钥。该选项主要用于从多种商业版本的SSH中导入密钥。 -l : 显示公钥文件的指纹数据。它也支持RSA1的私钥。对于RSA和DSA密钥,将会寻找对应的公钥文件,然后显示其指纹数据。 -P : passphrase, 指定密钥密码。 |
创建SSH密钥对并导入私钥
以admin登录到服务器172.16.10.136并执行以下命令:
mkdir ~/.ssh && chmod 700 ~/.ssh && cd ~/.ssh
ssh-keygen -P Passw0rd -f ~/.ssh/172.16.10.136_admin
echo "IdentityFile ~/.ssh/172.16.10.136_admin" >> /etc/ssh/ssh_config
ssh-agent bash
ssh-add ~/.ssh/172.16.10.136_admin
ssh-add -l
传递SSH公钥到对端服务器
- 方法1. 在服务器172.16.10.136上将公钥复制到对端服务器172.16.10.143,需要进行密码登录认证;
ssh-copy-id -i ~/.ssh/172.16.10.136_admin.pub -p 22 admin@172.16.10.143
- 方法2. 以admin账号登录到对端服务器172.16.10.143系统,将获得的172.16.10.136_admin.pub文件上传到对端服务器172.16.10.143上、并以追加方式将公钥写入到 ~/.ssh/authorized_keys 文件中;
mkdir ~/.ssh && chmod 700 ~/.ssh
cat 172.16.10.136_admin.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
测试公钥认证登录
以admin账号登录到服务器172.16.10.136并执行以下命令:
ssh -p 22 admin@172.16.10.143
说明:登录172.16.10.136服务器的admin账号需要使用ssh-add 172.16.10.136_admin导入私钥后才能通过公钥认证方式登录到对端服务器172.16.10.143。
其他命令使用说明
查看ssh-agent中所有已导入的私钥:ssh-add -l
删除ssh-agent中已导入的某个私钥:ssh-add -d 172.16.10.136_admin
查看SSH密钥对的公钥信息:ssh-keygen -e -f ~/.ssh/id_rsa
查看SSH密钥对的公钥指纹:ssh-keygen -l -f ~/.ssh/id_rsa
扫描/etc/ssh目录下的rsa和ecdsa公钥:ssh-keyscan -p 22 172.16.10.136
指定SSH命令使用的私钥文件:echo "IdentityFile ~/.ssh/172.16.10.136_admin" >> /etc/ssh/ssh_config
文章出自: 本站技术文章均为原创,版权归 "Desen往事 - 个人博客" 所有;部分图片来源于 Yandex ,转载本站文章请注明来源。
本文标题:OpenSSH 公钥认证