linux服务器配置ssh免密登录
1.生成ssh key
生成ssh key时同时指定保存的文件名
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa -C "xx-email"
上面的id_rsa
就是我们指定的文件名,这时~/.ssh
目录下会多出 id_rsa
和id_rsa.pub
两个文件,id_rsa.pub
里保存的就是我们要使用的key。
2.配置config文件
个人本地的config( 没有生成一个):
Host game
HostName 主机IP
User root
IdentityFile ~/.ssh/id_rsa
Host example # 关键词,别名
HostName example.com # 主机地址
User root # 用户名
IdentityFile ~/.ssh/id_rsa # 认证文件
# Port 22 # 指定端口
192.168.10.?表示匹配 192.168.0.[0-9] 的 IP,是内网服务器的地址,使用localtest
通过执行 $ ssh example
我就可以登录我的服务器。而不需要敲更多的命令 $ ssh root@example.com
。又如我们想要向服务器传文件 $ scp a.txt example:/home/user_name
。比以前方便多了。
3.将我们生成的key传到服务器
首先测试看能否使用密码登录到服务器
$ ssh username@remote-server
$ password
复制公钥到服务器
$ ssh-copy-id username@remote-server 默认端口是22,也可以指定
$ ssh-copy-id "-p 22 username@remote-server"
ssh-copy-id -i ~/.ssh/id_rsa.pub 服务器用户名@服务器地址
查看公钥与本地的是否一致,一致就说明匹配成功了
本地:
$ cat ~/.ssh/id_rsa.pub
remote-server
# cat ~/.ssh/authorized_keys
4. 测试是否免密配置成功
$ ssh game