本文首发于烂泥行天下

在上一篇文章《烂泥:学习ssh之ssh无密码登陆》中,我们讲解了如何使用ssh密钥,免密码登陆服务器。

这篇文章我们再来讲解,如何把已经生成的密钥随身携带。

有关如何生成ssh密钥的详细步骤,可以查看上一篇文章《烂泥:学习ssh之ssh无密码登陆》。

一、生成密钥

现在我们通过xshell生成密钥,注意:本章节,我只进行截图,不做进一步的文章说明。

如下:

我们现在有了公钥和私钥:id_dsa_150518.pub、id_dsa_150518,把公钥id_dsa_150518.pub上传到需要连接的服务器192.168.1.9的ilanni用户的对应目录下。如下:

ifconfig eth0|grep 'inet addr'|awk '{print $2}'|cut -d: -f2

cat .ssh/authorized_keys

现在我们就可以把这个密钥id_dsa_150518随身携带,无论在什么地方都可以连接192.168.1.9服务器。

注意:我们现在所说的密钥,其实就是上面xshell生成的ssh私钥。

同时还要注意私钥id_dsa_150518,我们可以携带该私钥文件,也可以把该私钥的内容复制到其他文件中也行。如下:

注意:ssh私钥的内容在复制,不能缺少任何一个字符。

二、windows下连接ssh服务器

假如,我们现在到一个新的地方,使用的OS是windows,而ssh的私钥就在我们身边的话,我们就可以通过该私钥连接ssh服务器了。

在此,我们还是以使用xshell来连接ssh服务器为例,进行讲解。当然你也可以使用其他的ssh客户端软件,进行连接。

使用如下命令连接ssh服务器,如下:

ssh ilanni@192.168.1.9

此时xshell会弹出要你输入密码的界面。如下:

我们不选择Password选项,要选择Public Key选项。然后选择“浏览”--“文件”,如下:

找到我们携带的ssh的私钥文件id_dsa_150518,如下:

选择私钥文件,如下:

通过上图,我们可以很明显的看出在连接192.168.1.9服务器时,xshell确实没有提示我们要输入密码。

注意:如果你的私钥文件不是随身携带而是记住私钥内容的话,你也可以建立一个文件,比如ilanni.txt,把私钥的内容复制到ilanni.txt进去保存。

在连接ssh服务器选择密钥文件时,只需选择ilanni.txt文件即可。

三、linux下连接ssh服务器

在第二章节中,我们讲解了如何在windows下通过ssh的私钥连接ssh服务器。在这章节,我们再来讲解如何在linux下,通过ssh私钥连接ssh服务器。

先把ssh的私钥上传到linux主机上或者在linux主机上新建一任意文件,把私钥的内容复制到该文件中,然后使用如下命令进行连接:

ssh -i id_dsa_150518 ilanni@192.168.1.9

通过上图,我们可以很明显的看出,连接ssh服务器192.168.1.9还是需要输入用户密码的。

是我们的操作不对还是怎么回事呢?

如果你仔细看上述的提示的话,你会发现这个是因为ssh私钥用户权限的设置太大,不安全造成的。

ssh为了安全起见,对私钥文件的权限一般要设置为600,即用户自己对该私钥文件具有读写权限,其所在的用户组及其他用户组对私钥文件不具有任何权限。

我们现在只需要把ssh私钥文件的权限设置为600即可,如下:

chmod 600 id_dsa_150518

再次使用ssh -i id_dsa_150518 ilanni@192.168.1.9命令进行连接,如下:

通过上图,我们可以很明显的看出,现在我们已经进入到192.168.1.9这台服务器中,而且是没有输入密码的。

注意:上述命令中的-i参数用于指定ssh私钥文件。

有关ssh命令的相关参数使用方法,可以参考ssh的帮助。如下:

ssh --help

到此有关ssh密钥随身携带的全部内容就结束了。

转载于:https://blog.51cto.com/ilanni/1653654

烂泥:学习ssh之ssh密钥随身携带相关推荐

  1. 烂泥:学习ssh之ssh无密码登陆

    本文首发于烂泥行天下 最近一个月没有写过文章,主要是刚刚换的新工作.新公司服务器OS使用的是ubuntu server版,和以前熟悉的centos还是有很多不同的. 刚好这几天有时间,也是工作需要,学 ...

  2. SSH无需密码密钥登录

    2019独角兽企业重金招聘Python工程师标准>>> 无密码ssh登录的主要操作简单概述为,将本机中的ssh密钥对中的公钥如id_rsa.pub拷贝到目标机器的ssh验证文件aut ...

  3. 小五思科技术学习笔记之SSH

    下面介绍一下相关概念: SSH的概念: SSH的英文全称为Secure Shell,SSH使用TCP的22号端口,其目的是要在非安全的网络上提供安全的远程登陆和其他安全的网络服务, 为什么要使用SSH ...

  4. ssh服务器拒绝证书,使用SSH.NET以密钥文件连接到SFTP(权限被拒绝(publickey))...

    我在Visual Studio 2008和.NET Framework 3.5中有一个C#控制台应用程序.使用SSH.NET以密钥文件连接到SFTP(权限被拒绝(publickey)) 为了测试目的, ...

  5. ssh服务、密钥登陆配置

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

  6. 【2021-01-14】navicat使用ssh tunnel、密钥方式连接数据库的问题。错误:Unable to load key - unrecognised cipher name

    之前一直用Navicat for Mysql 10.1.7版本,一直感觉挺好用.这两天需要用ssh tunnel.密钥方式连接一个远程数据库,对方服务器系统是centos8,结果不行了. 首先选择了私 ...

  7. xshell删除文件夹命令_ssh远程连接GPU服务器进行深度学习以及常用ssh命令汇总

    在我们进行深度学习的科研任务时,我们都会遇到复杂神经网络的训练问题,这时我们都不可避免地需要一块合适的gpu服务器,我认为gpu服务器的好处有两点:一是相对而言便宜一些,虽然很多gpu服务器也是昂贵的 ...

  8. 学习java的ssh

    这段时间开始学习java的ssh 实际上自己学习java也是刚开始 是否适合现在学ssh还难说 但工作需要只得学了 原来有c/c++的基础,也用c#做过设计开发 基础的知识到没什么问题 但学习过程却没 ...

  9. Linux系统学习 八、SSH服务—SSH远程管理服务

    1.SSH简介 ssh(安全外壳协议)是Secure Shell的缩写,是建立在应用层和传输层基础上的安全协议.传输的时候是经过加密的,防止信息泄露,比telnet(明文传递)要安全很多. ftp安装 ...

最新文章

  1. 自定义leftBarButtonItem的button
  2. share extension 不显示_这几项超好用的云开发扩展能力,别说你还不知道!
  3. 一款基于RxJava2+Retrofit2实现简单易用的网络请求框架
  4. Integer和Int的比较,谈谈拆卸和装箱
  5. 楚留香ai人脸识别_戴口罩居然也能人脸识别?这些AI黑科技真的藏不住了.........
  6. Oracle连接数据库的方式
  7. Bailian3245 空调排名【水题】
  8. CF1A Theatre Square
  9. Opencv3与Opencv2的区别,及opencv2项目移植到opencv3注意事项
  10. 捷联惯导系统学习4.3(静基座误差)
  11. Android的UC的flash插件下载,uc浏览器flash不支持解决方法详解
  12. python正则表达式和数据库
  13. 微信支付回调验签失败,提示 java.security.InvalidKeyException: Illegal key size
  14. Hive经典最全笔试题系列
  15. Github Pages + Hugo 搭建个人博客
  16. 复旦情商课魅力女教师上课实录
  17. 数据预处理第6讲:正态变换
  18. ip helper-address原理
  19. 青云QingCloud发布重量级产品 云计算赋能企业核心业务
  20. php银行卡账户类型查询接口

热门文章

  1. android os FileUriExposedException file storage emulated 0 test tx
  2. EF实体部分更新的问题
  3. linux下搭建DNS子域及相关授权详解
  4. 项目实现思路(不断更新)
  5. 跨浏览器javascript
  6. android thread线程通讯
  7. 自定义SharePoint Webservice
  8. Go 语言初级教程之一[变量声明]
  9. u盘当启动盘(多种方法)
  10. Bash 手册 v3.2 - 5