我们用ssh连接机器时候需要输用户名、密码,但是直接写账户文件的时候由于用的是明文,就存在安全的问题了。别人一旦截取了数据就获得了隐私了。这时候就用上ssh的密钥。

ssh的密钥存是成对出现的,一个叫公钥,一个是私钥。公钥是给别人的,私钥存在自己手里。在连接的时候两把钥匙配对成功,就可以建立数据连接。

[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.这个就是私钥的存储路径
Your public key has been saved in /root/.ssh/id_rsa.pub.这个是公钥
The key fingerprint is:
SHA256:uRVPB4eYb3mXG7j7BcIeOEG83TSS7ApCzyDdU5P1abE root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| . . o+*ooo |
| . + o.=.=+o+ |
| o + .o=.=E..|
| . +..B*+oo.|
| .S.+o=.o.o|
| o.o + o |
| . . . .|
| . .|
| .. |
+----[SHA256]-----+

我们在看看这对密钥

[root@localhost ~]# cat /root/.ssh/id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA4oRNlaIoefdsSuYmoLUdV7C2JtzKv6hd6UsC1FUEFfgjn/SV
5StzkVqnOWwEed77WOwW2my+n7pW6G3AyXtPAgrdih7Jpn6RG0AW3D0tkOlLN2/j
L3znlfsqGpQ63hBPRPjSswmCMILfRhOnY+KbsAEmeClcQIjUEsljomSMS2BT+zTZ
HyI1QLTdeET/DKxSrOcQPy+qNSSma7dAGDINNT8CVC7tdj62PVj1vgJ/lXJeTR79
wh0aKHuBfTp9zqBDVQRzAhjX4I3xBTwKh+tgdSrX55ltQqhxA0KaqvoB2ZCG5VuE
6U4XI8DUUEDtBY+AmCSUtWH+bDMwOI5ooNdL5wIDAQABAoIBAQCwO/lU+wX85sjF
eU0Cagc7S4xcrhm8hdUTBj5cTwzPvvCQqa3Z0DWpGFvUrDrLSvZJV93r8QFaqpKl
YYbF+38b+rIknRGMzRo+ll1y2tJR1YCk0BN0xfw0T2aRqVQno47Y/bKIg1RcQ+ZM
0kvAxfUVOb/ha2SP/STqvO8c0Jfqp78pwsEiT8BCRPERsFJR6E2QSjWJQu2QPRO+
Q51tHTVdzi4Z2jXjwbh/SwpKbK0zEsEa625RSocZXciT+b3IUYIZj0my0+Kmx6cE
cO5tZqxL3FE0NUQaGHhs3NCscoqb/oigRvNMxHY+9kP9+voI7GZGgf4lYZWO9FId
njjYc6q5AoGBAP/RnTw9SKLlHAa7ID8ThDe0BOIQKwPlyOKrV114MKbceuTHbdBc
NopzFF2Sg6MrCrgjyTvu9ymBcoHYNx0DdZQitI9cFLfD/7tgLmHCFBqxnc0aVmgg
9qGJ2hW3hM8lHK6mCCzdqlYF7R0UdkcoI6Cw5uznAKDE3Miesj7qyFZNAoGBAOKt
YDCgMeSRBWy0Jkf6RKP+cUvLGBNZOIyz8QerRhNN8FAjXQwun6yUrzdEq2GgOM4c
3GQKKSLikOn8jWczIPPA8/WIGEqIdWscDx2tjOCf2IID9bmWp1mIEo/66t9rQpqL
RUnCDC388aY7ddvAo/6yFd+PHvj3TXuJ2jPZfe0DAoGANszZaOkb4UFBErQNQVXV
8fTPQvoBrPERanUX3v77NRNwBAgwnvzR9jCWwUC8kDyNLEsGNZ+INMz1EZmWnNF7
44LXuQoZqhADfUkqRmjD08AOtLwanG3LR2l3XUWV3qXtkgAhKjNF5O2aEKusdqvD
jg23OjJ18Pqa7SMJve6fgdUCgYBytOGUObyFuY1RMOieS9soUb3raN7KC8A+E2DJ
TLatVidhpkOTwpQytRrlkO5Y/MdCJgCw7yNZ7+T9QzwbGRh3wRCzEyeXr+4bQZu0
nPpJQRpC0NYsEDynZeBe086/OHv/0LJDXNrk+rceM8C0b4uNe3juJHK78glXlq7A
xjKfGQKBgQDIOERmoRikK4qihhp6eKaVL8slCKNc+qxBhAWTr6Da4lfXrd8GkiNR
WPH4ZNHlIq6Cv8qZaypqdkrw9CsIHYDPQ3gSj/C3PMmXU24f6c2LkEhauOInK+22
qHHJv0blEfQWIs5Uj0yJC5qetGxyT+6n7kTdxgKzXteTX8ltDtvJqg==
-----END RSA PRIVATE KEY-----
[root@localhost ~]#
[root@localhost ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDihE2Voih592xK5iagtR1XsLYm3Mq/qF3pSwLUVQQV+COf9JXlK3ORWqc5bAR53vtY7BbabL6fulbobcDJe08CCt2KHsmmfpEbQBbcPS2Q6Us3b+MvfOeV+yoalDreEE9E+NKzCYIwgt9GE6dj4puwASZ4KVxAiNQSyWOiZIxLYFP7NNkfIjVAtN14RP8MrFKs5xA/L6o1JKZrt0AYMg01PwJULu12PrY9WPW+An+Vcl5NHv3CHRooe4F9On3OoENVBHMCGNfgjfEFPAqH62B1KtfnmW1CqHEDQpqq+gHZkIblW4TpThcjwNRQQO0Fj4CYJJS1Yf5sMzA4jmig10vn root@localhost.localdomain
[root@localhost ~]#

我们现在启动两台linux,用户名分别是user_on_1和user_on_2

可以看到各自的ip和用户名。现在我们在user1上用ssh登陆user2

[user_on_1@localhost ~]$ ssh user_on_2@192.168.233.130

其实在IP后面应该还有个-p端口号,这里省略了。

发现是需要输入登陆密码的,不是我们要的结果。我们在user1的/etc/.ssh文件夹下查找authorized_keys这个文件,把use2的公钥放进去,重新登陆,应该就没问题了!

对了,要把.ssh文件夹的权限改成700,authorized_keys的权限改为600

chmod 700 .ssh
chmod 600 authorized_keys

ps:我这里说的是应该,因为我也没成功,网上查的资料说StrictModes设置有问题,改了依旧没成功,先记下来,随着Linux的学习留给以后解决吧——20190118.

ssh密钥讲解的更多相关文章

  1. 烂泥:学习ssh之ssh密钥随身携带

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 在上一篇文章<烂泥:学习ssh之ssh无密码登陆>中,我们讲解了如何使用ssh密钥,免密码登陆服务器. 这篇文章我们再来讲解,如何把已经生成的 ...

  2. ssh 配置文件讲解大全 ssh调试模式 sftp scp strace进行调试 特权分离

    ssh 配置文件讲解大全  ssh调试模式  sftp scp strace进行调试  特权分离 http://blog.chinaunix.net/uid-16728139-id-3265394.h ...

  3. GIT:如何管理本机的多个ssh密钥(多个远程仓库账号)

    最近在学习git,首先推荐一个个人认为很不错的git教程,学习后,从git新手变成了git入门了,仍需继续努力. 廖老师的git学习教程(其他git基础知识点,本篇博客就不做介绍了,自己看教程学习吧, ...

  4. 《Ansible权威指南》笔记(1)——安装,ssh密钥登陆,命令

    2016-12-23 读这本<Ansible权威指南>学习ansible,根据本书内容和网上的各种文档,以及经过自己测试,写出以下笔记.另,这本书内容很好,但印刷错误比较多,作者说第二版会 ...

  5. 多个网站使用不同的SSH密钥登陆(zz)

    多个网站使用不同的SSH密钥登陆   1.创建不同的SSH密钥, -t指定加密方法,RSA或DSA:-C注释:-f指定文件名   www.2cto.com   ssh-keygen -t dsa -C ...

  6. 添加SSH密钥到GitHub

    $ clip < ~/.ssh/id_rsa.pubbash: /c/Users/UsersName/.ssh/id_rsa.pub: No such file or directory [转] ...

  7. 使用SSH密钥连接Github

    使用Github,也许大家觉得比较麻烦的就是在每次push的时候,都需要输入用户名和密码.如果使用SSH,就可以记住用户名,并创建属于自己 的密码来保证安全操作,还有神奇的一招可以“不用输入密码”哦. ...

  8. [转] SSH 密钥认证机制

    使用 RSA 密钥对进行 SSH 登录验证 使用 RSA 密钥对验证 SSH 的优点是 1) 不用打密码 2) 比密码验证更安全:缺点是 1) 第一次配置的时候有点麻烦 2) 私钥需要小心保存.Any ...

  9. git使用ssh密钥和https两种认证方式汇总(转)

    在版本库的SSH方式和HTTPS方式是不同的,具体来说就是url信息的不同,但是,实际的认证机制也是不同的.当建立了本机密钥之后,使用ssh方式实际上是不需要再次认证的,而https则每次需要输入密码 ...

随机推荐

  1. mongodb数据到MySQL数据库 的迁移步骤

    废话少说,直接上干货. 1.mongoexport -d shengyang -c testData -f _id,x,name,name1,name2 --type=csv -o new.csv 用 ...

  2. OTU(operational taxonomic units),即操作分类单元

    转自http://www.dxy.cn/bbs/topic/35655953 1.OTU是什么? OTU(operational taxonomic units),即操作分类单元.通过一定的距离度量方 ...

  3. spring boot 代理(not eligible for auto-proxying)

    spring 事务机制网上的案例很多,关于事务 不能回滚也有很多的类型,不同的问题有不同的处理方案,本篇博客主要介绍两种事务不能回滚的问题解决方案: 问题一:    在同一个对象中有两个方法,分别未方 ...

  4. Socket通讯-Netty框架实现Java通讯

    Netty简介 Netty是由JBOSS提供的一个java开源框架.Netty提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Netty ...

  5. js中的全局变量

    在js中有3中声明全局变量的方式 第一种使用var+变量名,在方法外部声明: var msg; //默认值undefined $(function(){ setmsg(); showmsg(); }) ...

  6. 五、Singleton 单例模式

    需求:保证对象只创建一次 说明: 分为懒汉式.饿汉式,通过是否一开始就创建静态对象.饿汉式需要考虑线程并发的安全 懒汉式: public class Singleton { private stati ...

  7. c# double 类型保留几位小数

    C 或 c :货币 D 或 d:十进制数 E 或 e:科学记数法(指数) F 或 f:定点 G 或 g:常规 N 或 n:数字 P 或 p:百分比 double.ToString("Nx & ...

  8. CSS3实现10种Loading效果(转)

    CSS3实现10种Loading效果  原文地址:http://www.cnblogs.com/jr1993/p/4622039.html 昨晚用CSS3实现了几种常见的Loading效果,虽然很简单 ...

  9. 【转自牛客网】C++类职位校招

    作者:./a.out链接:https://www.nowcoder.com/discuss/14022来源:牛客网 话说在牛客网上混迹了半年,也没啥拿的出手的贡献.现在基本上自己的校招生涯要告一段落, ...

  10. SQL update语句 更新和查询同一张表 冲突

    #update 和 select在同一张表的时候会显示冲突  报错信息: [Err] 1093 - You can't specify target table 'tb_a' for update i ...