ssh登录

登录ssh一般情况有两种方法
  • 密码登录
  • 秘钥登录(免密)
大部分情况我们选择都是输入密码登录,平常使用暂时没有遇到什么问题。最近我编写了一些使用scp来传输文件的脚本,每一次scp都需要输入密码,甚是麻烦。又或者是服务器集群需要多台服务器的通信等,这个时候免密登录就至关重要了。

基本原理

免密登录的原理大概了解一下就可以啦,Client即需要免密登录的客户端,Server表示被免密登录的服务器,本文后续也以此命名。
Client生成密钥对并将公钥发给Server,Server将公钥保存;
Client要登录Server时,Server生成随机字符串并用Client的公钥加密后,发给Client;
Client用私钥将其解密后发回给Server,验证成功后登录。
在Server的秘钥文档~/.ssh/authorized_keys有Client的公钥文件id_<加密算法>.pub的条目,这个时候Client可以免密登录上Server了。图中以rsa为例。

Client秘钥

在Client生成公钥和私钥,只需要:
ssh-keygen
后面一直按回车就可以啦
当然ssh-keygen也有一些参数可选
  • -t 选择密钥类型,可选dsa、ecdsa、ed25519、rsa(默认)
  • -b 指定生成的密钥的大小,单位字节Byte
  • -C 生成密钥的描述信息,默认内容是user@hostname。(会追加到公钥.pub 内容的末尾)
  • -f 选择文件输出名字或路径
  • -N 指定新密码,'' 表示密码为空
  • -q 快速生成,不而外显示内容在终端
 ssh-keygen -t ed25519 -b 2048
在完成ssh-keygen后私钥和公钥文件生成在~/.ssh中(Windows在C:\Users\用户名\.ssh中)。
  • 私钥:id_ <加密算法>
    • id_rsa、id_dsa、id_ed25519、id_ecdsa
  • 公钥:id_<加密算法>.pub
    • id_rsa.pub、id_dsa.pub、id_ed25519.pub、id_ecdsa.pub

Server授权

Client生成的公钥,我们需要追加在Server的文件~.ssh/authorized_keys末尾。免密登录,可以存放多条。
可以使用ftp、sftp(scp命令)、http(wget、curl)等多种方法将Client公钥追加在Server授权authorized_keys文件中。也可以直接使用ssh-copy-id。
在Client执行ssh-copy-id <sever的ip>
ssh-copy-id root@192.168.2.159 -p 22
只要把Client的公钥追加到Sever的authorized_keys就可以了,哪怕你ssh连接进去vim authorized_keys粘贴效果也一样的。
对了随便说一下,know_hosts : 已知的主机公钥清单

请注意权限问题:

  • ssh目录的权限必须是700(即rwx------)
chmod 700 ~/.ssh
  • .ssh/authorized_keys文件权限必须是600(即rw------)
chmod 600 ~/.ssh/authorized_keys
  • 将sshd服务重新启动一下,退出登录,发现已经生效了,不需要输入密码登录。
systemctl restart sshd.service

命令总结

#Client中
ssh-keygen -t [dsa|ecdsa|ed25519|rsa] -d 2048
ssh-ssh-copy-id root@ip -p 22
#Sever中
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
systemctl restart sshd.service

SSH免密登录的配置的更多相关文章

  1. SSH免密登录详解

    SSH免密登录详解 SSH(Security Shell)安全外壳协议,是较为可靠的,专为远程登录会话和其他网络服务提供安全保证的协议. ​ 对于传统的网络服务程序(例如,FTP,Telnet等)来说 ...

  2. Ubuntu如何配置SSH免密登录

    前言 在搭建hadoop集群时,需要主机和副机之间实现SSH免密登录 一.环境准备 1.ubuntu两台 二.安装SSH 1.首先检测一下本机有没有安装SSH服务,如果没有任何打印说明未安装 sudo ...

  3. (11)ssh免密登录配置

    ***在Linux命令行中登录到另一台虚拟机(需要用到ssh协议) Linux中默认有ssh的服务器端和客户端,客户端的名字就叫ssh 前提是当前使用的用户名在待连接的虚拟机中存在 格式:  ssh ...

  4. 配置ssh免密登录后,仍需要密码才能登陆其中某台机器

    提示:如果是三台机器A.B.C配置了ssh免密登录,从A和B上登录C需要密码,则需要修改C的配置 修改配置文件如下: sudo vi /etc/ssh/sshd_config #禁用root账户登录, ...

  5. SSH免密登录配置

    SSH免密登录配置 本地生成密钥文件: $ ssh-keygen 输出: Generating public/private rsa key pair. Enter file in which to ...

  6. Ubuntu16.04下配置ssh免密登录

    Ubuntu16.04下配置ssh免密登录 环境准备:新建两台虚拟机,而且两台虚拟机上都装有Ubuntu16.04的系统,使两台虚拟机之间保持互通状态.分别为两台虚拟机命名为A,B.假设我们要使A虚拟 ...

  7. Centos7配置ssh免密登录群发

    ssh免密登录是客户端发送自己的公钥到服务器.用公钥进行解密,自己生成的私钥进行加密. 首先在客户端查看sshd服务是否启动 [zhiwei@zhiwei1 ~]$ ps -Af|grep sshd; ...

  8. Cmder下ssh免密登录配置

    1.本地生成ssh-key 在本地cmder终端下运行下面的命令生成ssh的公钥和私钥文件: ssh-keygen -t rsa 其中,.ssh/id_rsa为私钥文件,留在本地使用,而.ssh/id ...

  9. jsch配置sftp服务器ssh免密登录

    前期对接了一个通过ssh免密登录的需求,是基于原先密码登录sftp服务器的代码上进行改造,实际上代码改动量非常少,趁此机会对自己整理的资料做一下总结. 1. 什么是SFTP SFTP是一个安全文件传送 ...

随机推荐

  1. 技术分享 | Appium 用例录制

    原文链接 下载及安装 下载地址: https://github.com/appium/appium-desktop/releases 下载对应系统的 Appium 版本,安装完成之后,点击 " ...

  2. 百度地图API 地图圈区域并计算坐标点是否在区域内

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 表达式的动态解析和计算,Flee用起来真香

    前言 在很多项目中经常会出现需要动态解析表达式和计算的场景,比如一些自动审核规则,或者是一些变量的值通过维护的公式在运行过程中动态算出:由于场景需求,都需要比较灵活的配置对应的表达式,然后希望在需要的 ...

  4. tableSizeFor

    HashMap tableSizeFor() /** Returns a power of two size for the given target capacity. 1.(不考虑大于最大容量的情 ...

  5. UiPath存在图像Image Exists的介绍和使用

    一.Image Exists的介绍 检查是否在指定的UI元素中找到图像,输出的是一个布尔值 二.Image Exists在UiPath中的使用 1. 打开设计器,在设计库中新建一个Sequence,为 ...

  6. 鼠标右键打开powershell

    不需要更改配置文件什么的. 在桌面空白处按住Shift键同时鼠标右击,看看是不是就有了呢.

  7. 抓包整理外篇——————autoResponder、composer 、statistics [ 三]

    前言 经过了前文的介绍的部分已经能够为自己抓包提供一个舒适的环境了,但是舒服的拿到我们的包后,可能有些需求还是难以搞定,fiddler 提供了我们一些其他模块,让我们工作轻松,请往下看. 正文 aut ...

  8. 活动报名 | 如何基于开源项目 Tapdata PDK,快速完成数据源和目标的开发?

      近日,Tapdata 启动 PDK 插件生态共建计划,宣布开源插件开发框架 Tapdata PDK,将自身的数据接口能力开放出来,帮助开发者根据实际需求,自助接入数据源和目标,快速开启「Data ...

  9. HTML 超文本标记语言 (Hyper Text Markup Language)

    1.HTML是什么 HTML指的超文本标记语言(Hyper Text Markup Language),是一种用来描述网页的语言.超文本指的是除了可以包含文字之外,还可以包含图片.链接.音乐.视频.程 ...

  10. FileNameFilter过滤器的使用和Lambda优化程序--IO概述(概念&分类)

    FileNameFilter过滤器的使用和Lambda优化程序 public class Demo02Filter { public static void main(String[] args) { ...