0%

管理ssh会话

实现ssh无密码别名登录

通过config管理ssh会话,实现使用别名登录。通过使用密钥,实现无需密码登录。在管理多个服务器时很方便。

假如有两服务器 A(root@192.168.1.2:22) 和 B(root@192.168.1.3:233)

  1. 配置config文件 vim ~/.ssh/config
Host A
HostName 192.168.1.2
Port 22
User root
Host B
HostName 192.168.1.3
Port 233
User root
  1. ssh-keygen -t rsa 生成密钥

  2. ssh-copy-id A 复制公钥到A ssh-copy-id B 复制公钥到B

    生成密钥时如果自定义了名字,则 ssh-copy-id 名字 A

  3. 此时可以使用别名登录,无需输入密码
    ssh A 登录到A服务器

⚠️ 在A,B的~/.ssh/authorized_keys里是复制的公钥,假如丢失了私钥,就可以在这里删除对应的公钥

不同主机使用不同公钥

生成公私钥

➜  ~ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/d2x3/.ssh/id_rsa): /Users/d2x3/.ssh/a_rsa
# ...
➜ ~ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/d2x3/.ssh/id_rsa): /Users/d2x3/.ssh/b_rsa
# ...

编辑~/.ssh/config,通过IdentityFile指定不同的私钥

Host A
HostName 192.168.1.2
Port 22
User root
IdentityFile ~/.ssh/a_rsa
Host B
HostName 192.168.1.3
Port 233
User root
IdentityFile ~/.ssh/b_rsa
Host *
ServerAliveInterval 60

复制公钥到远程主机

➜  ~ ssh-copy-id -i ~/.ssh/a_rsa A
➜ ~ ssh-copy-id -i ~/.ssh/b_rsa B

欢迎关注我的其它发布渠道