无密码登录linux服务器

简介:
实现原理

使用一种被称为"公私钥"认证的方式来进行ssh登录. "公私钥"认证方式简单的解释是
  • 首先在客户端上创建一对公私钥 (公钥文件:~/.ssh/id_rsa.pub 私钥文件:~/.ssh/id_rsa
  • 然后把公钥放到服务器上~/.ssh/authorized_keys, 自己保留好私钥
  • 当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配.如果匹配成功就可以登录了

 


1在客户端机器上执行"ssh-keygen -t rsa"
( 注:每次执行 "ssh-keygen -t rsa" 产生的私钥文件都会不同 )
a )如果文件 "~/.ssh/id_rsa" 存在,会提示是否覆盖该文件,此时可选择 "n" 不覆盖该文件而使用已有的 id_rsa 文件;如果选择 "y" 则会重新生成 "~/.ssh/id_rsa" 文件,接下来会提示输入 passphrase ,回车确定使用空的 passphrase ,再次回车确认(这里也可以输出 passphrase ,相当于 ssh 时登录的密码)。然后会重新生成 "~/.ssh/id_rsa" 文件和 "~/.ssh/id_rsa.pub" 文件(结果如下)。

b)如果"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件不存在则会自动创建新的"~/.ssh/id_rsa"文件和"~/.ssh/id_rsa.pub"文件,passphrase设置同上。
 
2 、使用 ssh zhangsan@192.168.1.1 登录到服务器,编辑服务器上 "~/.ssh/authorized_keys" 文件,将客户端机器上的 "~/.ssh/id_rsa.pub" 文件内容追加到 "~/.ssh/authorized_keys" 文件中。
(注:可以在客户端机器上使用以下命令来实现:
                  cat  ~/.ssh/id_rsa.pub | ssh zhangsan@服务器ip "cat - >> ~/.ssh/authorized_keys"
此时会要求输入zhangsan 在服务器上的登录密码,输入后即会将客户端机器上的 "~/.ssh/id_rsa.pub" 文件内容追加到服务器上的 "~/.ssh/authorized_keys" 文件中)
 
如果是首次连接服务器会出现以下的提示,确认连接并输入密码后其他直接回车确定。
3 、如果在第 1 步中 使用了空的passphrase ,则可以跳过第 4 步,此时在客户端即可以使用 "ssh zhangsan@192.168.1.1" 即可无密码登录到服务器;如果第一步中设置了 passphrase ,则继续执行以下步骤。
 
4 如果第 1 步中设置了 passphrase ,则此时需要输入该 passphrase 登录服务器。 此时 前面我们把输入密码变成了输入passphrase 这没有带来任何方便 但是 我们可以通过 ssh-agent 来帮助我们自动输入 passphrase(只是看起来像是自动输入而已) 我们只要 在第一次登录时 输入一次passphrase, 以后的工作就可以交给ssh-agent 。在客户端机器上执行命令 ssh-add 这里会提示输入一次passphrase 。输入第一步中设置的 passphrase 之后会修改 "~/ .ssh / id_rsa " 文件。再在客户端执行 "ssh zhangsan@192.168.1.1" 即可无密码登录到服务器端。

5、使用ssh-add时,如果出现‘WARNING: UNPROTECTED PRIVATE KEY FILE’, 如下:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for '/home/kejuwangkj/.ssh/id_rsa' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.

=》 解决方案如下:
To fix this, you'll need to reset the permissions back to default:
 
   
If you are getting another error:
 
   
This means that the permissions on that file are also set incorrectly, and can be adjusted with this:
 
   
Finally, you may need to adjust the directory permissions as well:
 
   
This should get you back up and running.
 

本文转自 tianya23 51CTO博客,原文链接:http://blog.51cto.com/tianya23/247958,如需转载请自行联系原作者
相关文章
|
15天前
|
Java Linux
Springboot 解决linux服务器下获取不到项目Resources下资源
Springboot 解决linux服务器下获取不到项目Resources下资源
|
18天前
|
Linux
linux下搭建tftp服务器教程
在Linux中搭建TFTP服务器,需安装`tftp-server`(如`tftpd-hpa`)。步骤包括:更新软件包列表,安装`tftpd-hpa`,启动并设置开机自启,配置服务器(编辑`/etc/default/tftpd-hpa`),添加选项,然后重启服务。完成后,可用`tftp`命令进行文件传输。例如,从IP`192.168.1.100`下载`file.txt`: ``` tftp 192.168.1.100 <<EOF binary put file.txt quit EOF ```
28 4
|
1天前
|
监控 安全 Linux
Linux系统之安装ServerBee服务器监控工具
【4月更文挑战第22天】Linux系统之安装ServerBee服务器监控工具
32 2
|
5天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
|
11天前
|
Linux 数据安全/隐私保护
Linux基础与服务器架构综合小实践
【4月更文挑战第9天】Linux基础与服务器架构综合小实践
1234 8
|
15天前
|
Linux 网络安全 数据安全/隐私保护
linux免密登录最简单--图文详解
linux免密登录最简单--图文详解
20 2
|
23天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器
|
23天前
|
Linux
Linux安装bind9搭建自己的域名服务器
Linux安装bind9搭建自己的域名服务器
11 0
|
26天前
|
网络协议 Linux 网络安全
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
Linux服务器DNS服务器配置实现bind的正向解释和反向解释
17 0
|
弹性计算 运维 监控
ECS使用与Linux环境搭建
本文主要记录ECS使用中,安全组配置,Linux下生成环境搭建等。
ECS使用与Linux环境搭建