ssh 免密码登录

ssh 免密码登录

设置 ssh 免密码登录

目标机器

1. root 用户登录目标机器

shell
1
ssh root@hostname

2. 修改 sshd 配置文件

配置文件路径 /etc/ssh/sshd_config

/etc/ssh/sshd_config
1
2
3
PubkeyAuthentication yes #启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys #公钥文件路径
PasswordAuthentication no #可选,关闭密码登录,提高安全性

3. 重启 SSH 服务

shell
1
systemctl restart sshd

客户端机器

1. 生成密钥对

ℹ️
如果已经有密钥对,跳过此步
shell
1
ssh-keygen -t rsa

会生成一对密钥 id_rsa.pub id_rsa

密钥目录:

  • Windows 系统中,一般在 C:\Users\用户名\.ssh\目录下
  • Linux 系统中,一般在 ~/.ssh/ 目录下

2. 将公钥发送到服务端机器

2.1. ssh-copy-id 方式

shell
1
2
# ssh-copy-id -i PUB_PATH root@SERVER_IP
ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]

2.2. 手动拷贝方式

文本方式打开 id_rsa.pub 文件,将公钥复制到目标机器的 .ssh/authorized_keys

3. 测试验证


3. 使用别名登录,懒得输 IP (可选)

3.1 设置 ssh config

格式:

Host别名
HostName主机名,IP 或域名
User用户名
Port端口
IdentityFile指定私钥路径
  • Windows: C:\Users\用户名\.ssh\config 没有的话新建一个

    C:\Users\用户名\.ssh\config
    1
    2
    3
    4
    5
    
    Host HK01
        HostName 8.8.8.8
        User root
        Port 22
        IdentityFile C:\Users\aaa\.ssh\id_rsa
  • Linux: ~/.ssh/config 没有的话新建一个

    ~/.ssh/config
    1
    2
    3
    4
    5
    
    Host HK01
        HostName 8.8.8.8
        User root
        Port 22
        IdentityFile ~/.ssh/id_rsa

3.2 使用

设置好后,可以用 Host 名称进行登录,省得填 IP

shell
1
ssh HK01