Windows 终端 ssh免密码登录Linux
需求:需要管理大量服务器,避免每次登录服务器都重复输入密码,特进行基于“公钥-私钥对”方法的远程登录设置。以下是我自己的设置方法。
基本原理
在本地生成一对公钥和私钥,将公钥字符串追加复制到服务器的~/.ssh/authorized_keys
文件中。私钥 :放在本地~/.ssh/目录中。
私钥:
id_rsa 放置在客户端 ~/.ssh/
目录中,就可以实现默认私钥免密登录远程服务器。
通过。
公钥:
id_rsa.pub 写入服务器 ~/.ssh/authorized_keys
文件中,可添加多条
config文件:
配置~/.ssh/config
文件可以实现登录不同服务器用不同私钥文件的需求
客户端生成密钥
在本地(Windows客户端)生成“公钥-私钥”文件对,在当前系统用户文件夹的.ssh文件夹下生成 id_rsa、id_rsa.pub,其中id_rsa为私钥文件、id_rsa.pub为公钥文件
ssh-keygen
将公钥拷贝到服务器端
使用scp 将公钥复制至服务器
scp id_rsa.pub root@remotehost:/root/.ssh/ #拷贝公钥文件到服务器~/.ssh下
touch authorized_keys #创建公钥keys文件
cat id_rsa.pub >> authorized_keys #将公钥字符串追加拷贝到改文件
chmod 600 authorized_keys #修改文件权限
chmod 700 .ssh #修改文件夹权限
在服务器端做必要的ssh配置
vim /etc/ssh/sshd_config
对sshd_config
文件做如下修改
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
修改完sshd_config
文件后,重启ssh服务:
sudo systemctl restart sshd.service
利用默认单个私钥实现免密登录
这样就可以实现免密登录了:ssh root@remoteip
多服务器免密登录
通过设置 ~/.ssh/config
文件实现不同服务器用不同私钥文件的需求,简化登录操作
vim config
Host nickname #指定登录别名
HostName amazon.com #指定IP或者HOST
Port 22 #指定端口
User username #指定用户名
IdentityFile ~/.ssh/id_rsa #指定私钥文件
保存,即可简化登录
ssh nickname