程序员

SSH登陆远程服务器免密码验证

2018-05-16  本文已影响0人  王彩彩的胖狗子

如果用xshell,Termius etc可忽略此文章

操作环境:mac

生成密钥

ssh-keygen -t rsa


生成密钥

可以起一个名字,如果默认回车,回车,回车就好,运行open ~/.ssh 可以打开文件查看到一个公共和私有的密钥的文件

放置密钥至服务器

scp命令放置公钥至服务器上的.ssh文件夹下
scp ~/.ssh/id_rsa.pub 登录用户名@服务器域名:~/.ssh/

现在,登陆到远程的主机上,进入ssh文件夹下

cd ~/.ssh
ls -la #查看一下是否有id_rsa.pub文件

我的文件是id2_rsa.pub

文件夹下还会有一个authorized_key文件,如果没有,就创建一个,然后在这个文件后面加入id_rsa.pub的内容

chmod 600 ~/.ssh/authorized_keys

设置拥有者可读写,其他人不可读写执行的权限

cat -n id_rsa.pub > authorized_keys #在authorized_keys文件后面加入id_rsa.pub的内容

查看一下authorized_keys文件中的内容,有时,他可能会多一些没用的东西,就打开vi编辑一下


多了一些没用的空格和‘1’,要记得删除之后才可以

SSH config 文件编写

exit登出远程主机,回到本地,编写SSH config 文件

vi ~/.ssh/config

Host service #自己起一个名字,方便一个连接服务器
HostName xxx.xxx.xxx.xx #真实的域名地址
User root #登陆服务器的用户名
IdentityFile ~/.ssh/id_rsa #私有密钥存放的位置

如果有多个,可以继续在后面添加多个

连接服务器时可能还需要登录服务器的专用密钥,用ssh-add命令可以把专用密钥添加到ssh-agent的高速缓存中

通常,我们输入过一次密码后,就可以不用再次输入了,启动ssh service就可以连接到远程的主机上了,但当我们重启电脑后,依旧要我们重新输入一次,因为ssh-add 这个命令不是用来永久性的记住你所使用的私钥的

这时,我们需要一个.bash_profile文件,输入一些自己使用的shell信息,设置一些环境变量,同时,需要ssh-add -K添加到mac中的keychain中,如果没有.bash_profile文件,我们要先创建一个

添加到钥匙串中

cd ~
touch .bash_profile #新建一个.bash_profile 文件,如果有,直接open
open ~/.bash_profile

在.bash_profile中写入ssh-add -K
如果我们有多个服务器,多个密码,就指定ssh-add -K [path/to/your/ssh-key]添加

添加 ssh-add -K
每次重启终端都会看到添加的提示信息

现在,就可以直接运行ssh service连接服务器了

参考:https://blog.csdn.net/xiaofei125145/article/details/30243535

上一篇下一篇

猜你喜欢

热点阅读