ssh免密登陆

183 阅读1分钟

1. 本机环境

  • Mac Version 10.13.3 (17D102)
  • 命令行工具 - Iterm2

2. 本机所需配置

2.1 生成密钥

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

将会在~/.ssh目录下生成

id_rsa :私钥 
id_rsa.pub :公钥 

2.2 将RSA公钥发送给服务器

2.2.1 方法一

ssh-copy-id -i ~/.ssh/id_rsa.pub 用户名@对方机器IP tips: 该命令不一定每台机器均有安装

2.2.2 方法二

复制公钥到服务器 scp ~/.ssh/id_rsa.pub xxx@host:/home/id_rsa.pub

2.3 配置~/.ssh/config

Host [name]
Hostname [ip]
Port 22
User root
IdentityFile ~/.ssh/id_rsa

3. 服务器所需配置

仅限于使用方法二方需要进行以下操作

3.1 将公钥导入到认证文件中

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3.2 修改权限

chmod g-w /home/your_user //若为用户登陆
chmod 700 ~/.ssh 
chmod 600 ~/.ssh/authorized_keys

4. 可能遇到的坑点

4.1 权限问题

.ssh目录,以及/home/当前用户 需要700权限,参考以下操作调整

sudo chmod 700 ~/.ssh

sudo chmod 700 /home/当前用户

.ssh目录下的authorized_keys文件需要600或644权限,参考以下操作调整

sudo chmod 600 ~/.ssh/authorized_keys

4.2 StrictModes问题

编辑 sudo vi /etc/ssh/sshd_config

找到 #StrictModes yes

改成 StrictModes no

重启sshd服务 service ssh restart

4.3 开启RSA认证允许

/etc/ssh/sshd_config中 开启

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile	.ssh/authorized_keys

重启sshd服务 service ssh restart

必杀技

可以用ssh -vvv 目标机器ip查看详情,根据输出内容具体问题具体分析了 GOOD LUCK!

参考