本地ssh免密登录远程服务器

本文详细介绍如何通过SSH实现免密码登录服务器的过程。包括在本地生成公钥和私钥、设置服务器authorized_keys文件以及配置别名登录等步骤。

原理

实现免密登录需要 本地的公钥放在服务器上的 authorized_keys 文件中
服务器 中的位置一般在 ~/.ssh.authorized_keys 。若不存在,创建一个即可。
注意 authorized_keys 文件的权限必须是600,如果权限不对会影响登录。

1
2
3
touch authorized_keys
chmod 600 authorized_keys
bash12

本地生成公钥和私钥

1
2
ssh-keygen -t rsa
bash1

参数 -t rsa 表示使用 rsa 算法进行加密,执行后,会在当前用户/.ssh目录下找到 id_rsa(私钥)id_rsa.pub(公钥)

服务器添加本地公钥

在本地.ssh 目录中打开cmd,输入如下命令:

1
2
3
4
ssh-copy-id -i id_rsa.pub 服务器用户名@服务器ip地址
-i 指定本地的公钥文件地址
会自动将本地的公钥id_rsa.pub传入到服务器的~/.ssh/authorized_keys中
bash123

此时,再执行 ssh root@ip 地址登录已不需要输入密码。

使用别名登录

这个坑还有点问题未解决。
在本地的.ssh 目录下创建一个 config 文件,写入配置:

1
2
3
4
5
6
7
8
9
10
11
# Host 自定义连接服务器名称
Host 别名
# HostName 连接服务器IP
HostName xx.xx.xx.xx
# Port 服务器 ssh 对外开放的端口
Port 22
# 登录服务器的用户
User root
# 本地服务器密钥文件地址
IdentityFile ~/.ssh/id_rsa
bash12345678910