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

如果用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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 89,728评论 13 124
  • [TOC] ssh免密码登陆及其原理 1 示例 ssh 无密码登录要使用公钥与私钥。linux下可以用用ssh-k...
    小小少年Boy阅读 5,588评论 1 2
  • 一、单向无密码访问 单向无密码访问远程服务器操作比较简单,比如服务器A需要无密码访问服务器B(A–>B),那么只需...
    夏大王2019阅读 148评论 0 0
  • 转载:http://www.jb51.net/article/94599.htm 1.Linux下生成密钥 ssh...
    SkTj阅读 289评论 0 0
  • 今天我们也来聊聊 Mac 与服务器 ssh 无密码登录的问题 这里只聊 bash 和 zsh 这两种情况 bash...
    简闻阅读 249评论 0 2