ubuntu系统使用SSH免密码登陆

  • |
  • 浏览:5160
  • |
  • 更新:2014-02-13 19:15
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

分步阅读

百度经验:jingyan.baidu.com

我们通常使用Ubuntu系统远程登陆时,一般使用 PASSWORD【用户名+密码】 的方式进行验证登陆,但是这种方式在使用的过程中需要频繁的输入用户名和密码,显得很繁琐,我们可以更具安全性的RSA密钥认证来避免这种登陆方式。

应用场景:

我们需要从Client机器上远程登陆Server机器。登陆方式采用RSA密钥免密码登陆方式。其中Client端与Server端都为Ubuntu系统。

Client与Server端用户名都选用phenix(可以不相同)

百度经验:jingyan.baidu.com

工具/原料

  • Server端需要安装并开启SSH服务

  • Client端需要支持ssh-keygen命令

  • 确认两台机器能够连接到Internet

百度经验:jingyan.baidu.com

步骤/方法:

  1. 1

    安装ssh服务

    在Ubuntu服务器上安装ssh

    安装方法:

    apt-get install ssh

    安装完成后验证是否SSH安装成功

    验证方法:

    在命令行模式下执行命令:ssh -V

    结果显示ssh版本证明成功

  2. 2

    查看Server端phenix用户家目录下是否存在隐藏目录".ssh"

    在安装ssh完成后,进入phenix用户家目录,使用命令:ls -al 查看目录结构中是否存在隐藏目录“.ssh”

    若存在,则操作正确,若不存在,解决方法如下:

    1,按照步骤一,重新安装一遍ssh服务

    2,若安装成功后还不存在".ssh"目录,则使用mkdir .ssh 在家目录下新建一个.ssh目录

    一般来说,多数系统在安装完ssh服务后,默认都会自动建立“ssh”隐藏目录,只有少数需要手动创建。

  3. 3

    Client端生成公钥和密钥

    我们使用RSA密钥认证的目的是:从Client端登陆Server端时,不需要密码认证。

    所以,我们在进行认证时首先需要在Client端建立属于Client端自己的一对密钥(公钥和私钥),建立方法如下:

    在命令行下执行:ssh-keygen

    执行过程中,它先要求你确认保存公钥的位置(默认为:.ssh/id_rsa),

    然后它会让你重复输入一个密码两次,如果不想在使用公钥的时候输入密码,可以留空

    执行完毕后,就会生成数据Client端的一对密钥。

    执行过程如下图:

    SSH 密钥默认储存在账户的家目录下的 ~/.ssh 目录中

    关键是看有没有用 xxx_rsa 和 xxx_rsa.pub 来命名的一对文件,有 .pub 后缀的文件就是公钥,另一个文件则是密钥。

    生成的一对公私钥,顾名思义:

    公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

    生成的密钥截图如下:

  4. 4

    将Client端的公钥添加到用于认证的Server端的公钥文件中

    首先检查Server端需要认证的phenix用户的家目录下,隐藏目录“ssh”目录下是否存在一个名为“authorized_keys”的文件,

    若不存在,使用命令:touch authorized_keys 创建一个空文件

    创建完成后,则可以执行如下步骤:

    执行步骤如下:

    1,将Clinet端公钥的内容复制

    2,将复制到的Client端公钥内容,粘贴至Server端刚才创建的 authorized_keys 文件中,保存文件。

    3,更改 authorized_keys 文件的权限

    执行命令:chmod 600 authorized_keys

    Client公钥内容格式大概如下:

    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzKGjCrHNCPCT96TTl8j1UtJ10V9a3fLIdx6R0upKP2N7FJP82Nni/vmAx7UVDhUNCgyfyG5Y6wK8AK2hOGjKLfLdfyYPojwmx3MF8KTspZBmmYKbHWh6Aem4TskRmsHOSpWeqns7o3tle0Ln1GMmPpdFph/owa7vj5/JYSOCBX8c+gGFyJeAMHGTs1fnHhGZRl5mzu8mWIv+qJnDxRmE/jBtuNXzSrPeZ2Cz86U+DfWtXVRyEl9XoIotX+GZ/zPxvPoMoItWD3UL6aA8McCX/PE7BLFA4B1Nl+mefTVpHH39AqcyqkcAJxntoqeNU3IwaM7sx/J7ONrFxp9Z3fjVR phenix@Client

    实例公私钥截图如下:

  5. 5

    验证无密码登陆

    在Client端命令行执行如下命令:

    ssh -p12 phenix@10.2.31.33 (本例ssh服务开在了12端口,默认为22)

    直接登陆至Server端,表示验证成功。

    登陆截图如下:

    END

百度经验:jingyan.baidu.com

注意事项

  • ssh-keygen执行完毕后一定要检查下phenix用户家目录下.ssh目录中是否有一对密钥

  • 在将公钥粘贴至Server端后,一定要修改authorized_keys文件的权限为600,否则认证会失败

  • Server端需要开启SSH服务,不然客户端使用ssh连接不上

软件基本信息

名称:Ubuntu
大小:16.25M|版本:1.0.5.0|系统:Android

ubuntu系统使用SSH免密码登陆的更多相关文章

  1. SSH免密码登陆详解

    为了更好的理解SSH免密码登陆原理,我们先来说说SSH的安全验证,SSH采用的是”非对称密钥系统”,即耳熟能详的公钥私钥加密系统,其安全验证又分为两种级别. 1. 基于口令的安全验证 这种方式使用用户 ...

  2. ssh免密码登陆

    Ssh免密码登陆设置 准备工作:1.确保两个主机里没有id_rsa.pub和authorized_keys的文件(这两个文件会影响实验的结果)# find / -name id_rsa.pub可查看是 ...

  3. ssh免密码登陆远程服务器

    ssh免密码登陆远程服务器 在使用windows下的cygwin或者在linux下使用Terminal进行远程服务器登陆测试的时候总是会要求输入账号密码,对于此我们可以使用ssh将公钥放在服务器上的方 ...

  4. hadoop搭建杂记:Linux下ssh免密码登陆

    关于ssh免密码登陆的问题 关于ssh免密码登陆的问题 linux下可以用ssh-keygen来生成公钥/私钥对 ①生成id_rsa和id_rsa.pub公钥/私钥对,自动在~/.ssh下生成文件(亦 ...

  5. [转] SSH免密码登陆以及穿越跳板机

    原文链接:http://www.cnblogs.com/lucantang/p/3315329.html SSH免密码登陆以及穿越跳板机   1. 免密码直连  [user@hostA ~] $ssh ...

  6. Hadoop localhost ssh 免密码登陆

    配置本地ssh免密码登陆,遇到很奇怪的问题,原来在公司电脑上,是按照 http://blog.csdn.net/hackerwin7/article/details/28109073 这里说的配置的, ...

  7. ssh免密码登陆(集群多台机器之间免密码登陆)

    1. 首先在配置hosts文件(每台机器都要) 进入root权限 vi /etc/hosts 添加每台机器的ip + 主机名,例如: 172.18.23.201 hadoop1 172.18.23.1 ...

  8. 5.SSH 免密码登陆

    SSH 免密码登陆 serverA 机器上 userA 用户,想要免密钥登陆到serverB机器上 1.集群中的所有机器 安装ssh 服务端sudo apt-get updatesudo apt-ge ...

  9. ssh 免密码登陆设置不成功

    记一次centos6设置免密码登陆设置不成功的解决.自己挖的坑自己填. ssh 免密码登陆设置( 正常情况下是这样的,设置成功后登陆主机是不需要密码的) [root@master .ssh]# ssh ...

随机推荐

  1. 封装一个DivTag

    封装一个DivTag,在页面加载的时候自动执行.用于创建任意的DOM节点,并且可以追加到任意的DOM节点上,可以设置样式,添加文本.var element = { __init__: function ...

  2. wordpress建站过程1

    使用wordpress我们需要理解一些概念: 1.WordPress是一种使用PHP语言开发的博客平台,它的程序是由php构成的,所以想要使用word press必须会php. 2.Wordpress ...

  3. angular项目——小小记事本2

    一,路由的规划. 需要模拟的页面有三个:all,active,conplete. 首先,写好铺垫需要的各种东西,重要的组件的引用等—— 这里我们会将index.html设为主页,将body.html加 ...

  4. Varnish && Varnish Cache

    1 1 1 Varnish https://www.varnish-cache.org/intro/index.html#intro Introduction to Varnish The basic ...

  5. 如何迅速成为Java高手[转]

    很多网友问我学习Java有没有什么捷径,我说“无他,唯手熟尔”.但是我却很愿意将自己学习的一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛! 要想学好Java,首先要知道Java的大致分类. ...

  6. python多线程--theading模块

    使用Condition对象可以在某些事件触发或者达到特定的条件后才处理数据,Condition除了具有Lock对象的acquire方法和release方法外, 还有wait方法,notify方法,no ...

  7. Self Numbers

    Self Numbers Time Limit : 20000/10000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Tota ...

  8. 使用 HTML5 input 类型提升移动端输入体验(键盘)

    在最近的项目中,策划老是要求我们弹出各种类型的键盘,特别是在iOS下,例如输入帐号的时候,不应该支持输入中文,该输入纯数字的时候就应该谈数字键盘等.个人觉得这些都是我们平时开发很少意识到的,虽然有些刁 ...

  9. 制作 macOS Sierra 正式版U盘USB启动安装盘方法教程 (全新安装 Mac 系统)

    使用命令行创建制作 macOS Sierra 正式版 USB 安装盘 1.准备一个 8GB 或更大容量的 U盘,并备份好里面的所有资料. 2.下载好 macOS Sierra 正式版的安装程序(app ...

  10. Inno Setup入门(七)——提供安装语言选项

    Inno Setup安装目录下有一个Languages的文件夹,该文件夹提供了可供使用的语言,通过在脚本中加入[languages]段,可以实现该项功能,实现代码如下: [setup] ;全局设置,本 ...