概述:

  SSH登录的认证方式分为两种,一种是使用用户名密码的方式,另一种就是通过公钥认证的方式进行访问,

  用户名密码登录的方式没什么好说的,本文主要介绍通过公钥认证的方式进行登录。

思路:

  在客户端生成公钥和私钥,将公钥上传至服务器上后进行无密码访问。

环境:

  客户机:192.168.129.129

  服务机:192.168.129.128

步骤:

  (1)在客户端生成公钥与私钥

root@kali2:~/.ssh# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):   <-- 此处使用默认路径,直接回车
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:
e9::e1:c9::9e:cb:1e:ec::8c:e9:9a:a5::ff root@kali2
The key's randomart image is:
+---[RSA ]----+
| |
| |
| . |
| + . |
| S+o |
| +o*o. |
| ..O =. |
| X.o .. |
| =...E. |
+-----------------+

  (2)查看已生成的公钥私钥

root@kali2:~/.ssh# ls -l
total
-rw------- root root Jul : id_rsa
-rw-r--r-- root root Jul : id_rsa.pub
-rw-r--r-- root root Jul : known_hosts

  (3)将公钥id_rsa.pub发送到服务器上

root@kali2:~/.ssh# scp -r /root/.ssh/id_rsa.pub root@192.168.129.128:/root/.ssh
root@192.168.129.128's password:
id_rsa.pub % .4KB/s :

  (4)进入服务器的/root/.ssh目录下,将id_rsa.pub内容重定向到同目录下的文件authorized_keys里

[root@localhost .ssh]# ls
id_rsa.pub known_hosts
[root@localhost .ssh]# touch authorized_keys
[root@localhost .ssh]# ls
authorized_keys id_rsa.pub known_hosts
[root@localhost .ssh]# cat id_rsa.pub >> ./authorized_keys
[root@localhost .ssh]# ls -l
total
-rw-r--r--. root root Jul : authorized_keys
-rw-r--r--. root root Jul : id_rsa.pub
-rw-r--r--. root root Jul : known_hosts

  (5) 此时在客户机访问服务机可不输入密码了

root@kali2:~/.ssh# ssh 192.168.129.128
Last failed login: Tue Jul :: CST from 192.168.129.129 on ssh:notty
There was failed login attempt since the last successful login.
Last login: Tue Jul :: from 192.168.129.129
[root@localhost ~]#

注意事项:

在使用公钥认证之前,先检查一下服务器的ssh配置文件/etc/ssh/sshd_config
RSAAuthentication yes # 启用 RSA 认证,默认为yes
PubkeyAuthentication yes # 启用公钥认证,默认为yes 如果安全性要求高,修改一下服务器的配置文件/etc/sshd/sshd_config,
禁用密码登录,只能通过公钥方式登录。

  PasswordAuthentication no

SSH公钥认证登录的更多相关文章

  1. Linux配置SSH公钥认证与Jenkins远程登录进行自动发布

    公钥认证,是使用一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密:另一个称为密钥(private key),只有拥有者才能看到,用于解密. 在使用jenkins ...

  2. ssh公钥认证原理及设置root外的其他用户登录ssh

    1)创建其他用户 useradd [-d 登录目录] [-G ssh][用户名]  一定要将用户添加到ssh组不然无法没有权限登录ssh 2)设置ssh不允许root登录 vi /etc/ssh/ss ...

  3. SSH公钥认证+优化

    一 ssh公钥认证流程: sshclinet机器:产生公私钥(公钥相当于一把锁) sshclient:将公钥发给sshserver(抛出锁子) sshclinet去连sshserver不需要密钥   ...

  4. [svc][op]SSH公钥认证+优化

    一 ssh公钥认证流程: sshclinet机器:产生公私钥(公钥相当于一把锁) sshclient:将公钥发给sshserver(抛出锁子) sshclinet去连sshserver不需要密钥 二 ...

  5. 转: SSH 公钥认证

    转: http://blog.knownsec.com/2012/05/ssh-%E5%85%AC%E9%92%A5%E8%AE%A4%E8%AF%81/ SSH 公钥认证 2012-05-15 简介 ...

  6. SSH公钥认证(码云)

    开发者向码云版本库写入最常用到的协议是 SSH 协议,因为 SSH 协议使用公钥认证,可以实现无口令访问,而若使用 HTTPS 协议每次身份认证时都需要提供口令.使用 SSH 公钥认证,就涉及到公钥的 ...

  7. 安装gitolite,并ssh公钥无密码登录

    安装gitolite,并ssh公钥无密码登录 gitolite是管理git版本库的一种方案,它将git版本库的管理信息放在了一个特殊git版本库里.gitolite与linux操作系统集成了,需要使用 ...

  8. 使用SecureCRT设置linux系统登录的ssh公钥认证

    1.修改ssh配置文件/etc/ssh/sshd_configRSAAuthentication yes                             //使用RSA加密算法PubkeyAu ...

  9. linux配置ssh公钥认证,打通root用户的免密码输入的scp通道

    1.ssh-keygen ssh-keygen是unix-like系统的一个用来生成.管理ssh公钥和私钥的工具. 2.用法 常用的重要的选项有: -b num   指定生成多少比特长度的key,单位 ...

随机推荐

  1. mysql中log

    mysql的主从模式配置 1.改主库配置文件:D:\Program Files\MySQL\MySQL Server 5.5(my.ini/my.cnf)在下面加入 [mysqld] log=c:/a ...

  2. 小课堂Week9 例外处理设计的逆袭Part2

    小课堂Week9 例外处理设计的逆袭Part2 今天继续阅读<例外处理设计的逆袭>这本书,我们先看两个案例: 案例1 问:如果要设计一个依据学号到数据库中查询学生资料的函数,当找不到符合条 ...

  3. openerp经典收藏 深入理解对象(转载)

    深入理解对象(转载) 原文地址:http://shine-it.net/index.php/topic,2159.0.htmlhttp://blog.sina.com.cn/s/blog_57ded9 ...

  4. Qt在VS2010的安装与配置

    1. 下载Qt的安装包和VS2010的Qt插件 2. 安装Qt SDK 点击下载安装包,一路回车即可,主要注意Qt的安装路径最好安装在全英文路径而且中间没有空格, 安装好后,可以运行开始菜单里面的Qt ...

  5. 【Go】 http webserver

    示例1: package main import ( "fmt" "net/http" "encoding/json" ) var i in ...

  6. Msys+Mingw在手 妙用在心!

    1 缘起 平时在一些c++群面,看见很多大学十分努力的学习c++/MFC ,看见在编程语言百花争芳的时候,C/C++还是很有很有魅力.估计很多初学者使用都是window下的visual stdio 开 ...

  7. cocos2dx中的背景图层CCLayerColor和渐变图层CCLayerGradient

    1.CCLayerColor是专门用来处理背景颜色的图层,它继承自CCLayer,可以用来设置图层的背景颜色,因为CCLayer默认是透明色的,即无颜色的 2.CCLayerGradient是用来显示 ...

  8. JPA学习---第二节:JPA开发环境和思想介绍

    一.下载相关 jar http://hibernate.org/orm/ 下载 hibernate ,解压 http://www.slf4j.org/download.html 下载 slf4j,解压 ...

  9. js之正则表达式(上)

    1.正则表达式的创建方式 两种方式创建:通过new修饰符创建和字面量的方式创建 1>new修饰符方式创建 var b2=new RegExp('Box','ig'); //第二个参数是 模式字符 ...

  10. android中实现Parcelable序列化步骤

    import java.io.Serializable; import java.text.DecimalFormat; import android.os.Parcel; import androi ...