Linux上
产看本地是否有ssh 公私钥
Code
1 | cd ~/.ssh |
有的话继续(没有 ssh-keygen 生成)
将公钥内容复制到要连接的服务器用户下
方法一
Code
1 | ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.10 |
方法二
登录到服务器,直接将本机的公钥复制到root下authorized_keys(我这里用的是root用户)
服务器重点
给.ssh 文件夹设置权限
Code
1 | chmod 700 .ssh |
给authorized_keys 文件设置权限
Code
1 | chmod 600 authorized_keys |
在Linux下写配置文件config
Code
1 | touch config # 创建config文件 |
config具体内容
Code
1 | host "roc" # ssh连接的别名 |
保存退出后
ssh链接
Code
1 | ssh roc |
输入密码后就可以了
windows上
跟Linux一样在C盘用户目录下有个.SSH文件夹(先选择文件查看隐藏的文件,否则你是查看不到的)
没有的话去生成
之后在.ssh文件中创建一个config文件
Code
1 | Host rot # 可用 "rot" 'rot' 不可 |
同样的操作把生成的公钥复制到服务器需要登录用户的authorized_keys文件下(注意权限)
链接服务器
Code
1 | # 第一种 |
免密登录
如果你觉的输入密码麻烦的话 在config文件中加入下面两横 ,就可以实现免密登录
Code
1 | PreferredAuthentications publickey |
同样如果Linux 也想免密登陆的话也要加入这两横。
解决问题
问题一
Code
1 | root@123.57.240.37: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). |
出现这个问题,使用ssh 私钥链接
Code
1 | ssh root@rot -i ./testrsa(私钥地址) # 失败的话,检查一下你的公私钥是否一致 服务器公钥是否正确 |
问题二
Code
1 | ssh: Could not resolve hostname rot: \262\273\326\252\265\300\325\342\321\371\265\304\326\367\273\372\241\243 |
说明你本地config文件有错误