登录服务器的过程太繁琐,简化一下
1. 打开文件夹
cd ~/.ssh
查看里面有已经生成的公私钥,带 pub 后缀的是公钥,不带的是私钥
如果没有,使用命令 ssh-keygen
生成。
一个公钥长这样 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7xyz... [email protected]
分为三个部分:
密钥类型: 如 ssh-rsa、ssh-dss、ecdsa-sha2-nistp256、ssh-ed25519 等,这表明了公钥使用的加密算法。
密钥数据: 一串经过 Base64 编码的数据,这是公钥的主体部分。
注释(可选): 通常是创建密钥时附加的注释,如电子邮件地址或用户名。注释部分对于 SSH 的功能没有影响,它主要用于标识公钥的所有者,便于管理。
2. 登录要访问的服务器
将生成的公钥,(通常在 ~/.ssh 文件夹下带 pub 后缀的文件 如:id_rsa.pub)添加到服务器的 ~/.ssh/authorized_keys 文件中。
如果服务器没有.ssh 文件夹,则登录服务器后使用以下命令生成:
sudo mkdir -p /root/.ssh // -p 意思是生成.ssh 文件夹的同时如果没有 root 文件夹,则也同步生成这个中间文件夹,不带-p 如果没有/root 就会报错
sudo chmod 700 /root/.ss // 700 表示将所有者权限设为 rwx(读、写、可执行) 600 是 rw-
vim ~/.ssh/authorized_keys // 使用 vim 打开文件。这个文件通常是存储允许通过 SSH 公钥认证方法登录系统的公钥。打开后把自己本地的公钥按下面的格式粘贴。
# John's public key
ssh-rsa
AAAAB3NzaC1yc2EAAAADAQABAAABAQC7xyz7a8bW2c9X2J2Y4Fp5eEJxQ2R3PLVNoxz+5Qp9Uj [email protected]
# Alice's public key
ssh-rsa
AAABBvaC1yc2EAADADAQABH0JQXYZu7Q [email protected]
如果不是 root 用户使用 ssh 登录,可能该用户的目录权限需要改一下,我这里是使用 root 登录,所以不用改。
3. 检查服务器的 SSH 配置文件(/etc/ssh/sshd_config)中是否启用了密钥认证
sudo vim /etc/ssh/sshd_config
PubkeyAuthentication yes //找到设置,改成yes
AuthorizedKeysFile .ssh/authorized_keys //查看默认的查找公钥的文件夹,是否是我们刚刚存放公钥的文件夹
保存
sudo systemctl restart sshd // 重启
4. 登录
ssh -p 22 [email protected]
这样就可以用 ssh 公私钥登录了
可以再简化一些
vim ~/.ssh/config
在里面输入设置
Host pdfdev
HostName 172.19.31.209
User root
IdentityFile ~/.ssh/my_private_key // 这里改成自己的私钥
保存
之后输入命令ssh pdfdev
输入创建公私钥时设置的密码,登录成功!