window ssh 免密连接 linux
先在本地生成密钥
本地执行ssh-keygen
一直敲enter
ssh-keygen -t rsa
找到密钥的位置,一般在 .ssh 文件夹下,window找不到开启隐藏文件
这些文件通常在.ssh文件夹内,window一般会隐藏这个文件夹
- config :ssh配置文件,一般是没有的,有需要可以自己配置;
- id_rsa :私钥文件;
- id_rsa.pub :公钥文件;
把公钥上传到服务器
上传可以用命令,也可以用其他方法,username
换成自己登录Linux的用户名,node
如果没有在本地指定主机名就用主机ip,这个命令会覆盖
之前已经存在主机上的公钥,有需要自己换个名字,然后追加,如果用户名不是root请查看Linux用户名并确定ssh目录所在位置
scp .\id_rsa.pub username@node:/root/.ssh/
如果主机.ssh
文件夹下有authorized_keys
文件把拷贝来的公钥追加到这个文件里,如果没有自己建一个或者直接运行cat
命令会自动生成
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
到这里有些好像已经可以不用密码登录了
ssh root@node
如果不需要密码就是成功了
如果还需要密码试着给.ssh
文件夹授权
chmod 700 .ssh #修改文件夹权限
如果还不行修改一下ssh配置
vim /etc/ssh/sshd_config
找到一下三项,去掉#
RSAAuthentication yes
PubkeyAuthentication yes
PermitRootLogin yes
修改完sshd_config文件后,重启ssh服务:
service ssh restart
使用ssh 主机名
直接连接用户名都不用了
ssh node
本地设置.ssh/config
不是主机上的
Host node
User root
HostName 192.168.12.12
键 | 值 |
---|---|
Host node | 指定登录别名,就是ssh后面的主机名 |
User | 指定用户名,就是登录主机的用户名 |
HostName | 指定IP或者HOST,就是主机的ip或者域名 |
Port | 指定端口,默认22,可以不用写 |
IdentityFile | 指定私钥文件,有默认值.ssh/id_rsa 可以不用写 |
到这里直接使用ssh node
不用密码连接