免密码登录
首先创建本机的公钥和私钥,使用命令ssh-keygen。
#输入命令后可以一直回车到结束
root:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:BaeNYqnL228zyzj8PZUfGfW0vqg4aW6dLoTSQ7AsFF4 root@ubuntu
The key's randomart image is:
+---[RSA 2048]----+
| ..E . . |
| .... . * o|
| ... * o o oo|
| . = o . ...|
| o o S ..o |
| . o + . o o. |
| o.. o o......|
| ooo+Boo ... |
| . o=O*=+. |
+----[SHA256]-----+
默认生成的公钥名为id_rsa.pub ,私钥名为id_rsa。当然也可以通过参数 -t 来指定名称,如:ssh-keygen -t rsa
。可以使用 ls ~/.ssh
命令来查看生成的公钥和私钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
如果希望ssh公钥生效需满足至少下面两个条件:
1. ssh目录的权限必须是700
2. ssh/authorized_keys文件权限必须是600
使用 ssh-copy-id <主机地址>
来将公钥添加到目的主机,这里可以使用 -i <公钥地址> 来指定使用本机的那个公钥,如:-i ~/.ssh/id_rsa.pub
。
$ ssh-copy-id root@192.168.1.111 -i ~/.ssh/id_rsa.pub
或者直接登录到目标主机,把自己的 id_rsa.pub 内容粘贴到 .ssh/authorized_keys
文件中。若目标主机的不存在 .ssh
目录或者不存在 authorized_keys
文件则手动进行创建。
别名登录
使用 vim ~/.ssh/config
命令编辑文件,添加如下内容:
#HOST 别名
#hostname 服务器
#user 用户名
#IdentityFile 本机私钥 #可选
#IdentitiesOnly yes #可选
#-------------------------
Host server1
hostname 192.168.1.11
Port 22
user root
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
Host server2
hostname 192.168.1.22
Port 22
user root
IdentityFile ~/.ssh/id_rsa
IdentitiesOnly yes
使用 ssh <Host>
登录目的主机,这里使用 ssh server1
就相当于执行 ssh root@192.168.1.11
。
网友评论