OTHERS 九月 13, 2020

SSH 免密登录

文章字数 1.4k 阅读约需 1 mins. 阅读次数

假设 local 需要 ssh 连接到 remote,且不希望每次连接的时候都输入密码(比如从服务器 A 连到 服务器 B)。

本地生成公钥私钥对

# 在本地(local 主机).ssh 路径生成公钥和私钥文件
$ ssh-keygen -t rsa
# 一路回车即可

将公钥复制到远程主机

scp

local

$ cd ~/.ssh
# 查看该路径下是否有 authorized_keys 文件,如果没有:
$ cp id_rsa.pub authorized_keys
# 如果有:
$ cat id_rsa.pub >> authorized_keys

# 将公钥传输到 remote
$ scp id_rsa.pub user@remote:/path/to/a.pub

remote

# 将公钥文件追加至 authorized_keys
$ cat /paht/to/a.pub >> ~/.ssh/authorized_keys

或 ssh-copy-id

$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote

按上述配置后依然需要密码登录

可查看安全日志中的异常信息,如 CentOS 中 /var/log/secure,如提示 Authentication refused: bad ownership or modes for file /home/xxx/.ssh/authorized_keys,则需要修改 .ssh 目录和 authorized_keys 文件的权限,去掉用户组的写权限:

chmod g-w authorized_keys
0%