Windows端操作
1. 生成私钥和公钥
在CMD输入
ssh-keygen -t rsa
这样会在当前目录生成名为id_rsa的私钥文件和名为id_rsa.pub的公钥文件,-t表示密钥类型是rsa。
如果你只输入ssh-keygen生成的RSA密钥长度为2048,如果你对安全性要求比较高可以指定4096位的长度:
ssh-keygen -b 4096 -t rsa
这里-b就是多少位,当你在生成SSHKEY的时候在命令行下会提示你Enter file in which to save the key,让你确认密钥文件保存的路径,一般回车即可(一般默认会在当前用户家目录下的.ssh目录下)。第二个提示是 Enter passphrase (empty for no passphrase) 让你输入一个密钥的密码,如果不输入则留空;回车生成公私钥完毕 。(这里建议密码留空)
2. 公钥上传
上传公钥文件
将本地的公钥文件上传到服务器上,并添加到 authorized_keys 文件中。
scp %USERPROFILE%\.ssh\id_rsa.pub %REMOTEHOST%:~/tmp.pub
%USERPROFILE% : C:\Users\xxx
%REMOTEHOST% :username@192.168.1.xxx
Linux端操作
1. 创建文件
在服务器需要免密登录的用户家目录下查看是否有 ~/.ssh/authorized_keys 这个文件,如果没有手动创建一个:
touch ~/.ssh/authorized_keys
然后我们将公钥内容写入到authorized_keys文件中,因为这个文件可能已经有内容了,所以你可以使用如下方式,然后可以删除原来的文件
cat ~/tmp.pub >> ~/.ssh/authorized_keys
rm -f ~/tmp.pub
或者到目录C:\Users\用户名.ssh查看公钥
记事本打开id_rsa.pub
全部复制
vim ~/.ssh/authorized_keys
vim操作
按i进入编辑模式
修改完毕,按Esc,输入:wq保存并退出
将刚才复制的公钥粘贴到这里(先按i进入编辑模式,右键Paste),按Esc,输入:wq保存退出
2. 更改目录权限
将.ssh目录的权限为700
将authorized_keys目录的权限为600
chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys
Windows端操作
打开刚才的配置文件,在你准备服务器位置下面,填好私钥的路径,这样就可以免密登录啦