SSH 免密登录

寿成
• 阅读 1870

理想案例

假设一切都很顺利的话,最简单的方式如下:

  1. 使用 ssh-keygen 命令在本地生成一对密钥(Public/Private Key)
  2. 使用 ssh-copy-id username@your-server-ip 命令将本地的公钥上传到远程服务器
  3. 现在使用 ssh username@your-server-ip 命令即可免密登录了

如果之前已经在本地生成过密钥了,那第一步都可以省了。怎么看有没有生成过:使用 ls -a ~/.ssh 命令看下是否已经存在 id_rsa 和 id_rsa.pub 文件,有即生成过。

现实情况

但往往看别人玩的很嗨,到自己实操了就会出现各种问题。还是那句话:该踩的坑一个都不会少! 如果遇到问题了可以看看下面列举出来的常见的 TROUBLESHOOTING

  1. 如果你在执行 ssh-copy-id 命令时指定了某个公钥,比如 ssh-copy-id -i ~/.ssh/id_rsa_another.pub username@your-server-ip,此时注意在使用 ssh 命令远程连接的时候也需要指定这个公钥,否则默认是会拿 ~/.ssh/id_rsa.pub 去匹配的,所以你的连接命令应该是类似这样:ssh -i ~/.ssh/id_rsa_another.pub username@your-server-ip
  2. SSH 服务端可能配置了不允许公钥授权登录。查看服务器上的 /etc/ssh/sshd_config 文件里是否配置正确:PubkeyAuthentication yes
  3. SSH 服务端可能配置了不允许 root 用户登录。查看服务器上的 /etc/ssh/sshd_config 文件,其中如果包含 PermitRootLogin no 则将其改为 yes

基本原理

一张时序图最能说明问题了 :P
SSH 免密登录

参考资料

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
3年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
Wesley13 Wesley13
3年前
SSH公钥免密登录其他主机
在多台主机之间使用SSH免密登录,假设主机A免密登录主机B:1\.在主机A上生成自己的ssh公钥:root@A~sshkeygentrsa执行上面命令,一路回车,完成后,会在~/.ssh目录下生成2个文件:id\_rsa(私钥)和id\_rsa.pub(公钥)2\.将主机A上生成的公钥
Wesley13 Wesley13
3年前
SSH公钥无密码认证
1)在master主机上生成密码对sshkeygen–trsa–P''确认一路回车,命令默认会在用户主目录下生成.ssh目录,你们有两密钥对文件:id\_rsa和id\_rsa.pubmaster@hadoop~$ll.ssh/rw.1mastermaster1675Jun
Stella981 Stella981
3年前
GitHub设置使用SSH Key,用TortoiseGit进行Clone仓库
GitHub设置使用SSHKey的好处就是可以使用SSH连接,并且提交代码的时候可以不用输入密码,免密提交。生成SSHKey这里我们使用PuTTYgen来生成公钥(PublicKey),私钥(PrivateKey)和PuttyKey。在使用PuTTYgen之前,你需要先安装TortoiseGit(https://www
Stella981 Stella981
3年前
Git使用总结
生成密钥1.打开GitBash,运行  \_sshkeygen  \_2.密钥生成空间\_~/.ssh/id\_rsa  \_(C:/User/.ssh)3.输入密码(不输入增直接回车跳过)4._~/.ssh/id\_rsa.pub_ (公钥), _id\_rsa_ (私钥)下载代码到本地
Stella981 Stella981
3年前
Linux单向免密登录最简配置
前置:两台linux,A和B需求:A免密登录B步骤:root用户登录A输入命令:sshkeygen之后一路按回车完成后进行公钥分发命令:sshcopyidi/root/.ssh/id\_rsa.pubB的IP示例:sshcopyidi/root/.ssh/id\_rsa.pub192.168.1
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
ubuntu 使用ssh登录github 避免提交时输入用户名和密码
原文链接: ubuntu使用ssh登录github避免提交时输入用户名和密码(https://my.oschina.net/ahaoboy/blog/3120961)ssh免密需要使用ssh方式clone仓库本地安装gitsudoaptgetupdatesudoaptgetinstallgit在用户主目录
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
5个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
寿成
寿成
Lv1
故国伤心,新亭泪眼,更洒潇潇雨。
文章
5
粉丝
0
获赞
0