ssh免密登录

烂柯 发布于 2024-06-27 26 次阅读


一、概述

​ SSH(Secure Shell)免密登录是一种机制,允许用户通过SSH协议连接到远程服务器,而无需在每次连接时输入密码。这种机制主要依赖于公钥和私钥的加密方法,通常使用RSA或DSA等加密算法。

二、生成密钥对

ssh-keygen
#ssh-keygen -t rsa -b 4096 -f ~/.ssh/my_ssh_key
#-t rsa:指定密钥类型为 RSA
#-b 4096:指定密钥长度为 4096 位(这是一个常见的安全长度)
#-f ~/.ssh/my_ssh_key:指定私钥的输出文件名为 `my_ssh_key`,并保存在 `~/.ssh/` 目录下。公钥将自动保存为 `my_ssh_key.pub`。

三、配置ssh服务端

1、公钥写入配置

#方式一,会自动写入用户文件夹下.ssh/authorized_keys文件
ssh-copy-id -i my_ssh_key.pub user@host
#方式二,通过拷贝等方式上传至目标服务器后,追加进authorized_keys文件
cat my_ssh_key.pub >> ~/.ssh/authorized_keys

2、确保权限

#ssh文件夹(仅允许用户自己读写执行)
chmod 700 ~/.ssh
#公钥存储文件(仅允许用户自己读写执行)
chmod 600 ~/.ssh/authorized_keys

3、配置sshd

vi /etc/ssh/sshd_config
#...
PubkeyAuthentication yes
#...

四、重启sshd服务

sudo systemctl restart sshd

五、测试

ssh user@host <可选参数 i>
#-i 私钥
烂柯

最后更新于 2024-06-27