SSH登陆远程服务器免密码验证
如果用xshell,Termius etc可忽略此文章
操作环境:mac
生成密钥
ssh-keygen -t rsa
生成密钥
可以起一个名字,如果默认回车,回车,回车就好,运行open ~/.ssh 可以打开文件查看到一个公共和私有的密钥的文件
放置密钥至服务器
scp命令放置公钥至服务器上的.ssh文件夹下
scp ~/.ssh/id_rsa.pub 登录用户名@服务器域名:~/.ssh/
现在,登陆到远程的主机上,进入ssh文件夹下
我的文件是id2_rsa.pubcd ~/.ssh
ls -la #查看一下是否有id_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 service连接服务器了
参考:https://blog.csdn.net/xiaofei125145/article/details/30243535