密钥登录步骤(免密码登录)
ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式。其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方法。
使用密钥登录分为3步:
1、生成密钥(公钥与私钥);
2、放置公钥到服务器~/.ssh/authorized_key文件中;
3、配置ssh客户端使用密钥登录。
---------------------

一、通过ssh-keygen命令生成密钥对,密钥类型为RSA,也可以通过其他软件生产密钥对。
==========================================================================
pipci@ubuntu:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/pipci/.ssh/id_rsa):            <==这里输入私钥名,直接回车就可以名字就为括号中默认的名字
Enter passphrase (empty for no passphrase):                               <==输入密码,自动登录设置为空,直接回车就可以                         
Enter same passphrase again:                                              <==输入确认密码,直接回车就可以
Your identification has been saved in /home/pipci/.ssh/id_rsa.            <==生成的私钥名和位置
Your public key has been saved in /home/pipci/.ssh/id_rsa.pub.            <==生成的公钥名和位置
The key fingerprint is:
SHA256:Hsi5oo0Yr1a9eXtgNeLlu/UAJx1EiH34Gghv96FeXEs pipci@ubuntu
The key's randomart image is:
+---[RSA 2048]----+                                                       <==密钥的位数
|        o +o     |
|     . . +..     |
|      o . o.     |
|     . B *.o.E   |
|    . * SoBo+ .  |
|   . . * =++ .   |
|. . . = + oo     |
| = + + . +. o    |
|+.+ . ..o..  .   |
+----[SHA256]-----+
pipci@ubuntu:~$
===================================================================

查看生成的密钥文件:
===================================================================
pipci@ubuntu:~$ ls -l .ssh/
-rw------- 1 pipci pipci 1679 10月 19 11:45 id_rsa
-rw-r--r-- 1 pipci pipci  394 10月 19 11:45 id_rsa.pub
pipci@ubuntu:~$
===================================================================

注意两点:

1、生成密钥对输入密码的作用是保护本地私有密钥的密码,也就是说,即使有人到用了你的计算机或私钥文件,没有这个密码依然不能使用你的私钥,在使用密钥登录时候也会要求你输入密码,这个密码就是生成密钥对时候输入的密码,用来解锁私钥文件,密码最低5个字符。

2、生成密钥对的私钥权限必须是600公钥权限是644,即只能本人可以查看私钥文件,除了本人以外的任何用户都不能产看,别人可以查看也就意味着任何人都可以通过这个私钥登录了,显然这是不安全的,公钥可以随便查看,但是不能修改内容,修改了还怎么配对登录。同时密钥对的父目录.ssh的权限必须是700即只有本人可以查看和进入。如果是通过命令新创建的.ssh默认就是700权限,创建完查看下就可以,如果不是更改权限。如果不是上面说的权限,客户端登录时候可能会出错。

二、通过scp命令将id_rsa.pub公钥文件复制到远程服务器:
====================================================================
pipci@ubuntu:~$ scp /home/pipci/.ssh/id_rsa.pub  laopi@192.168.1.166:/home/laopi/.ssh/
laopi@192.168.1.166's password:
id_rsa.pub                                    100%  394     0.4KB/s   00:00    
pipci@ubuntu:~$
=====================================================================
通过scp命令复制,前提是远程服务器已经开启ssh密码登录,将公钥文件复制到用来管理用户主目录下面的.ssh目录如果不存在先创建这个目录。这个.ssh的目录权限
也要设置成700不让其他用户进入更改,上面的例子远程服务器的ip地址为192.168.1.166用户名为laopi(普通用户)

三、远程服务器的配置

1、将上传的公钥文件导成或重命名成authorized_keys文件或
laopi@debian:~$ cat .ssh/id_rsa.pub >> .ssh/authorized_keys    #导成

2、编辑ssh的配置文件。

vim /etc/ssh/sshd_config

要确保下面这两项目前面没有#使之生效
---------------------------------------------------------------
PubkeyAuthentication yes                      #允许公钥认证

AuthorizedKeysFile .ssh/authorized_keys       #指定包含用于用户身份验证的公钥的文件
---------------------------------------------------------------
为了安全考虑禁用root账户登录
PermitRootLogin no                            #选项前面可以加#号注释掉,同样会禁用root用户

有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no                     #选项前面可以加#号注释掉,同样会禁用密码登录

重启一下ssh服务,这样ssh配置才能生效:

root@debian:~# systemctl restart sshd.service

四、ssh-keygen 命令常用参数

$ ssh-keygen 参数

常用参数:
-t 指定要创建的密钥类型,如:-t dsa(SSH-2) | ecdsa | ed25519 | rsa(SSH-2)| rsa1(SSH-1)

-b bits 指定密钥长度。对于 RSA 密钥,最小要求 768 位,默认是 2048 位

-C comment 提供一个注释。

-N new_passphrase 提供一个新的密语。

-F hostname
在 known_hosts 文件中搜索指定的 hostname ,并列出所有的匹配项。 这个选项主要用于查找散列过的主机名/ip地址,还可以和 -H 选项联用打印找到的公钥的散列值。

-H 对 known_hosts 文件进行散列计算。这将把文件中的所有主机名/ip地址替换为相应的散列值。原来文件的内容将会添加一个".old"后缀后保存。这些散列值只能被 ssh 和 sshd 使用。这个选项不会修改已经经过散列的主机名/ip地址,因此可以在部分公钥已经散列过的文件上安全使用。

-R hostname
从 known_hosts 文件中删除所有属于 hostname 的密钥。这个选项主要用于删除经过散列的主机(参见 -H 选项)的密钥。

-f filename 指定密钥文件名

-l 显示公钥文件的指纹数据。它也支持 RSA1 的私钥。对于 RSA 和 DSA 密钥,将会寻找对应的公钥文件,然后显示其指纹数据。

1、查看id_rsa.pub的公钥指纹
pipci@ubuntu:~$ ssh-keygen -lf .ssh/id_rsa.pub
2048 SHA256:Hsi5oo0Yr1a9eXtgNeLlu/UAJx1EiH34Gghv96FeXEs pipci@ubuntu (RSA)

1、用 md5 的方式查看指纹数据
pipci@ubuntu:~$ ssh-keygen -E md5 -lf .ssh/id_rsa.pub
2048 MD5:fa:ba:4b:35:18:7f:5f:94:f0:6b:b5:7a:89:98:f9:a5 pipci@ubuntu (RSA)

Debian9.5下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数的更多相关文章

  1. ssh免密码登录、secureCRT免密码登录详解

    再放一张真机实现图: 接下来就详细讲述实现细节. 实现过程中吃了不少苦头,这个不对,那个不通.好在慢慢一点点摸索出来了,经验分享在这里. 希望能终结网上ssh免密码登录,以及SecureCRT免密码登 ...

  2. git乌龟http/https以及ssh clone的秘钥配置永久免密码登录设置

    1.安装 安装Git 安装TortoiseGit 乌龟客户端 首先下载安装一个git客户端这个就不多说了基本就是next一直到底 安装后首次新建一个项目project在git服务器上 2.配置 1.注 ...

  3. windows7配置git 免密码登录git服务器

    1.在桌面右击“Git Bash Here ” 2.输入:cd ~/.ssh/ 3.输入你的git服务器的用户 git config --global user.name "xx" ...

  4. ssh_key登录服务器,免密码登录

    最近使用ssh远程登录服务器每次都要输入密码实在是太麻烦了,我这个懒人就想到了查了一下怎么用ssh-key来实现我的梦想. 使用密钥来登录 原理如下: 客户端向服务器发出请求.服务器收到请求之后,先在 ...

  5. Centos6.5之ssh免密码登录配置

    Centos6.5之ssh免密码登录配置 centos ssh 免密码登录 0.说明 这里为了方便说明问题,假设有A和B两台安装了centos6.5的主机.目标是实现A.B两台主机分别能够通过ssh免 ...

  6. linux下设置了SSH免密码登录但还是需要输入密码的解决办法

    今天在设置linux的免密码登录后,仍然需要输入密码,后来找到了原因,是因为用户没有权限修改.ssh目录下的know_hosts文件导致的. 具体情况是这样的: 在/home/username/.ss ...

  7. CentOS 6.5之SSH 免密码登录

    0.说明 这里为了方便说明问题,假设有A和B两台安装了centos6.5的主机.目标是实现A.B两台主机分别能够通过ssh免密码登录到对方主机.不同主机的配置过程一样,这里介绍A主机的配置过程. 事先 ...

  8. Ubuntu使用ssh公钥实现免密码登录

    ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以Ubuntu为例. 有机器A(10.0.2.1),B(10.0.2.100).现想A通过ssh免密 ...

  9. linux操作系统-两台linux服务器SSH免密码登录

    A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), ip为192.168.100.247 ; A和B的系统都是Linux   在A上的命令 # ssh-keyg ...

  10. SSH免密码登录,实现数据传输备份

    简单来说,就是通过ssh-keygen -t rsa命令来产生一组公私钥,私钥是id_rsa,公钥是id_rsa.pub,把公钥上传到另一台服务器对应账号的.ssh/authorized_keys,即 ...

随机推荐

  1. validation-api参数校验

    这里针对springboot项目结构 maven添加: <dependency> <groupId>javax.validation</groupId> <a ...

  2. Weblogic安装配置教程

    一.WebLogic的介绍    WebLogic是美国bea公司出品的一个application server,确切的说是一个基于Javaee架构的中间件,纯java开发的,最新版本WebLogic ...

  3. 百度编辑器UEditor修改成支持物理路径

    一.前言 我虽然工作了2年.有快1年没有做后台的开发了.最近要写个新项目用到富文本编辑器,然后选择用了百度的UEditor.在使用过程中感觉有些不太好.然后就自己手动改一下源码,写得不好请见谅.这只是 ...

  4. SSH框架下的多表增删改查

    下载地址:SSH框架下的多表增删改查 点击进入码云Git下载 点击进入CSDN下载 项目结构: 项目代码就不全部贴出来了,只贴下核心代码.需要项目的自己可以去下载. package com.atgui ...

  5. 修改input标签中的placeholder样式

    input::-webkit-input-placeholder { color: #fff !important; } input:-moz-placeholder { color: #fff !i ...

  6. Rx = Observables + LINQ + Schedulers

    The Reactive Extensions (Rx) is a library for composing asynchronous and event-based programs using ...

  7. 优动漫PAINT基础系列之存储格式说明

    本篇经验带大家了解优动漫PAINT可以存储成哪些格式! 最近有收到试用优动漫PAINT个人版试用版的小伙伴提问,优动漫PAINT可以导出什么格式文件呢?今天就这一问题做一下解答〜 优动漫PAINT[试 ...

  8. CDR X6三折促销活动,可入

    继CDR X6双十二限量活动之后,CorelDRAW官方为庆祝2018新年新气象,折扣狂潮,又来一波.上次活动由于时间短,任务急,数量少,使得不少小伙伴抱憾而止,选择默默等待良机.现在,良机来了,即便 ...

  9. 什么是面向对象以及其意义,prototpye原型

    什么是面向对象: 使用对象时,只关注对象提供的功能,不关注其内部的细节 例如:jquery 什么是对象: 对象是一个整体对外提供一些操作,比如 收音机 面向对象编程OOP的特点: 1.抽象:把主要的特 ...

  10. 【codeforces 367C】Sereja and the Arrangement of Numbers

    [题目链接]:http://codeforces.com/problemset/problem/367/C [题意] 我们称一个数列a[N]美丽; 当且仅当,数列中出现的每一对数字都有相邻的. 给你n ...