原理
实现免密登录需要本地的公钥放在服务器上的 authorized_keys 文件中
。
服务器中的位置一般在~/.ssh.authorized_keys
。若不存在,创建一个即可。
注意 authorized_keys 文件的权限必须是600,如果权限不对会影响登录。
touch authorized_keys
chmod 600 authorized_keys
本地生成公钥和私钥
ssh-keygen -t rsa
参数 -t rsa
表示使用rsa算法进行加密,执行后,会在当前用户/.ssh目录下找到id_rsa(私钥)
和id_rsa.pub(公钥)
服务器添加本地公钥
在本地.ssh
目录中打开cmd,输入如下命令:
ssh-copy-id -i id_rsa.pub 服务器用户名@服务器ip地址
-i 指定本地的公钥文件地址
会自动将本地的公钥id_rsa.pub传入到服务器的~/.ssh/authorized_keys中
此时,再执行 ssh root@ip 地址登录已不需要输入密码。
使用别名登录
这个坑还有点问题未解决。
在本地的.ssh
目录下创建一个config文件,写入配置:
# Host 自定义连接服务器名称
Host 别名
# HostName 连接服务器IP
HostName xx.xx.xx.xx
# Port 服务器 ssh 对外开放的端口
Port 22
# 登录服务器的用户
User root
# 本地服务器密钥文件地址
IdentityFile ~/.ssh/id_rsa
使用ssh 别名
登录,出现问题Bad owner or permissions on C:\\Users\\../.ssh/config
登录失败,后续再解决。