1、服务器端开启密钥登录模式

/etc/ssh/sshd_config


# 是否允许 root 远程登录
PermitRootLogin yes

# 密码登录是否打开
PasswordAuthentication yes

# 开启公钥认证
RSAAuthentication yes # 这个参数可能没有 没关系
PubkeyAuthentication yes

# 存放登录用户公钥的文件位置
# 位置就是登录用户名的家目录下的 .ssh
# root 就是 /root/.ssh
# foo 就是 /home/foo/.ssh
AuthorizedKeysFile .ssh/authorized_keys
authorized_keys 是一个文件,不是文件夹
# 重启,让配置生效
service sshd restart

2、用户端创建自己的秘钥对


ssh-keygen -t rsa
# 如果出现,已存在,需要覆盖的情况,需要命名别名,以免覆盖其他的配置

cd ~/.ssh/

# 查看公钥
cat id_rsa.pub

# 配置登录别名 省去输 ip 麻烦
# .ssh/config
vi config

Host workhost0 # 登录的服务器别名 ssh examp 就可以了
    HostName 8.140.130.30 #要登录的服务器ip
    Port 22
    User root #登录名
    IdentityFile ~/.ssh/id_rsa #你的私钥路径
    ServerAliveInterval 30
    TCPKeepAlive yes
    
# 可以配置多个,来支持多个免密登录

3、将你的公钥添加至服务器端的公钥凭证

把文件中的公钥复制到远程主机的~/.ssh/authorized_keys中,如果没有这个文件,那么请创建一个新的。

authorized_keys 是一个文件,不是文件夹

4、用户端即可免密登录

ssh workhost0

### 小Tips

1、~ 是在当前用户目录下,Linux是在root文件下(而不是最外层的目录下)
2、用VScode 打开远程和本地文件目录,可以省去Vim 操作文件的成本

参考链接

1、Mac终端配置ssh免密登陆教程

https://blog.csdn.net/weixin_...

2、ssh 公钥/私钥免密登录配置

https://segmentfault.com/a/11...


SnowWolfArden
24 声望10 粉丝

喜欢解决问题,每日复盘 600 天以上。