程序员

远程服务器设置SSH Key免密登录

2020-06-22  本文已影响0人  雨带愁

为了远程服务器的安全使用及远程连接方便,设置SSH Key免密码登录。
(分为用户操作和管理员/sudoer操作)

用户操作步骤

1. 在服务器上生成密钥

用ssh远程连接到服务器后,执行命令:

ssh-keygen

终端会出现提示:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
# 可选择默认位置,例:/home/username/.ssh/id_rsa
Created directory '/home/username/.ssh'.
Enter passphrase (empty for no passphrase):
# 为私钥加密,设不设都行吧
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub. #生成公钥文件位置
The key fingerprint is:
7c:25:bd:54:f5:fc:60:c0:86:c1:a0:32:7d:8a:80:c4 root@debian
The key's randomart image is:
+--[ RSA 2048]----+
| .o.+..o..|
| o . . o o+ o.|
.......

2. 在远程服务器上配置公钥

cd .ssh
mv id_rsa.pub authorized_keys
chmod 600 authorized_keys #修改公钥为只有属主有读写权限(安全考虑)
chmod 700 ~/.ssh #修改.SSH目录为只有属主有读、写、执行权限(安全考虑)

3. 在本地配置私钥

3.1 从服务器上取回私钥到本地电脑
cat /home/username/.ssh/id_rsa #刚刚存储的密钥
3.2 在本地电脑为私钥文件设置权限
chmod 0600 id_rsa

4. 用SSH Key登录

ssh username@ip -p xxx -i ~/.ssh/xxx

其中,-p后的xxx为端口,不填即为默认的22,-i后的~/.ssh/xxx为本地私钥的路径。

PS:对于x2go用户,注意在Session preference中修改下面两个位置


x2go preference修改

管理员/sudoer操作

1. 开启SSH Key登录

ssh到服务器,执行:

vim /etc/ssh/sshd_config

找到下面两个参数并确认为yes

RSAAuthentication yes
PubkeyAuthentication yes

2. 重启ssh生效
/etc/init.d/ssh restart
3. 关闭SSH密码登录

用户都完成了key生成操作后,将sshd_config中的这个参数注释取消并改为no:

“#”PasswordAuthentication yes

THX~

上一篇下一篇

猜你喜欢

热点阅读