设置免密登录
有一个小问题就是我们每次远程连接都要输入密码,很麻烦。所以这里我们设置一下ssh的免密登录。
在本地pc生成ssh公钥和私钥
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) 让你输入一个密钥的密码,如果不输入则留空;回车生成公私钥完毕 。(这里建议密码留空)
手动上传公钥文件
将本地的公钥文件上传到服务器上,然后在服务器需要免密登录的用户家目录下查看是否有 ~/.ssh/authorized_keys 这个文件, 如果没有手动创建一个:
touch ~/.ssh/authorized_keys
然后我们将公钥内容写入到authorized_keys文件中,因为这个文件可能已经有内容了,所以你可以使用如下方式
cat -n ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
- 将.ssh目录的权限为700
- 将authorized_keys目录的权限为600
chmod 700 ~/.ssh/
chmode 600 ~/.ssh/authorized_keys
自动上传本地公钥
ssh-copy-id 复制公钥
这个工具还蛮有用的,不过它会将我本地的所有公钥都传到服务器,使用方法:
ssh-copy-id -p 22 username@remote-server