证书登录:

这里说的证书其实就是密钥. 在非对称加密中, 密钥分为公钥和私钥. 私钥, 即密钥所有人持有. 公钥则公布给他人. 公钥和私钥成对使用, 互相解密. 公钥加密数据只能用私钥解密; 私钥加密则只能用公钥解密(验证)

证书登录原理:

密钥对生成后, 公钥存储于远程服务器. 登录时远程服务器向客户端发送随机字符串, 客户端以私钥加密后返回服务器, 服务器再以公钥解密. 解密成功则证明客户端合法, 允许登录,生成的密钥仅对当前用户有效.

SSH免密码原理

1、client向Server 发出连接请求,

2、Server 端向client发出自己的公钥

3、client使用Server端的公钥加密通讯密钥然后发给Serve端

4、如果通讯过程被截获,由于窃听者即使获知公钥和经过公钥加密的内容,但不拥有私钥依然无法解密(RSA算法)

5、 Server端接收到密文后,用私钥解密,获知通讯密钥

/root/.ssh目录存放文件清单:

authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
如果希望ssh公钥生效需满足至少下面两个条件:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600

1.创建公钥私钥:

ssh-keygen -t rsa

ssh-keygen是一个用来生成和管理ssh密钥的工具

-t参数用于指定密钥类型, 或者说加密算法. 本次使用rsa算法. 除此以外还有rsa1, dsa可选

2、将本地公钥写入authorized_keys. 目录下多出一个文件authorized_keys

3、将其他机器的公钥拷贝到服务器authorized_keys文件中:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.1.4

.常用以下几种方法:
通过ssh-copy-id的方式

1、ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.0.1.4

2、scp -p ~/.ssh/id_rsa.pub 10.0.1.4:/root/.ssh/authorized_keys

然后运行以下命令来将公钥导入到~/.ssh/authorized_keys这个文件中 $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

设置禁用密码登录

sudo vim /etc/ssh/sshd_config

# 禁止密码登录。原先为PasswordAuthentication yes
PasswordAuthentication no # 禁止 root 登录,看情况是否需要。原先为PermitRootLogin yes
PermitRootLogin no

service restart sshd.service 

证书登陆:

如果使用证书登陆需要下载私钥

home/.ssh下私钥id_rsa下载到本地

sftp 常用命令:

    1. sftp user@ip
      在 Linux 的 shell 中执行上面的命令后,Linux shell 会提示用户输入密码, 输入 password 之后就成功建立了 sftp 连接。
    2. help
      建立连接后, Linux shell 中的 $ 变成 sftp>。 执行 help, 可以看 sftp 支持哪些命令。
    3. pwd 和 lpwd
      pwd 是看远端服务器的目录, 即 sftp 服务器默认的当前目录。
      lpwd 是看 linux 本地目录。
    4. ls 和 lls
      ls 是看 sftp 服务器下当前目录下的内容
      lls 是看 linux 当前目录下的内容。
    5. put a.txt
      这个是把 linux 当前目录下的 a.txt 文件上传到 sftp 服务器的当前目录下。
    6. get b.txt
      这个是把 sftp 服务器当前目录下的 b.txt 文件下载到 linux 当前目录下。
      $ get openssl-1.1.1i.tar.gz ~/
    7. !command
      这个是指在 linux 上执行 command 这个命令, 比如!ls 是列举 linux 当前目录下的内容, !rm a.txt 是删除 linux 当前目录下的 a.txt 文件。 这个命令非常有用, 因为在 sftp> 后输入命令, 默认只针对 sftp 服务器的, 所以执行 rm a.txt 删除的是 sftp 服务器上的 a.txt 文件, 而非本地的 linux 上的 a.txt 文件。
    8. exit 和 quit
      退出。

SSH 设置别名访问远程服务器

使用 cd ~/.ssh/ 进入 ssh 目录,会看到有 config、known_hosts 两个文件,一般没有设置的话,只会有 known_hosts,可以使用 touch config 命令创建 config 文件。
使用 vim 编辑 config 文件,添加如下内容(或直接只用 cat >> 添加内容):
cat >>~/.ssh/config<<EOF
Host xxx1
HostName 192.168.100.101
User root
IdentitiesOnly yes

Host xxx2
HostName 192.168.100.102
User root
IdentitiesOnly yes

Host xxx5
HostName 192.168.100.103
User root
IdentitiesOnly yes
EOF

其中:

    1. Host 后边的是名称,以后可以根据这个名称进行访问;
    2. HostName 是你的主机 IP 地址;
    3. User 为主机登录的用户名;
    4. IdentitiesOnly yes 固有配置;

Centos免密登陆的更多相关文章

  1. [提供可行性脚本] RHEL/CentOS 7 多节点SSH免密登陆

    实验说明: 在自动化部署时,会经常SSH别的机器去操作,然而每次的密码认证却很令人烦躁,尤其是很长的密码,因此SSH免密登陆就显得必不可少: 在机器数目很多的时候,使用更过的往往是Ansible分发并 ...

  2. centos实现免密登陆及远程操作

    ----------------------------**********------------------------------------------------- 免密码登陆 第一步: 执 ...

  3. ssh免密登陆及时间设置

    1.ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa // 在自己主机生成私钥和公钥 2.scp id_rsa.pub centos@s201:/home/centos ...

  4. CentOS7 开启免密登陆

    1.开启免密登陆功能 以下文件 /etc/ssh/sshd_config 取消以下两项注释,如果没有添加. RSAAuthentication yes PubkeyAuthentication yes ...

  5. xshell 远程登陆CentOS7 免密登陆

    首先说一下大体的思路: 1. 以密码登陆CentOS系统 2. 配置ssh 3. xshell 生成秘钥 4. 进行免密登陆 软件.设备: xshell(下载地址(免费版),也可以自行百度下载) Ce ...

  6. SSH实现免密登陆

    SSH实现免密登陆配置 ssh实现免密码登录的配置过程,主要分为以下几个步骤: serverA生成密钥,包括私钥和公钥 serverA将公钥传到serverB上 serverA上配置serverB登陆 ...

  7. macos ssh host配置及免密登陆

    windows下面有xshell 这样的可视化ssh管理工具 macos 下面使用终端做下简单配置,也非常方便,具体过程如下 生成秘钥 cd ~/.sshssh-keygen -t rsa 生成了私钥 ...

  8. SSH之免密登陆

    又来了,上头让小轩我在服务器中写一个Shell脚本,主要用来在机器B中定时备份机器A中的一些文件.那么,小轩是怎么想的呢? 在小轩的知识库里,现在有scp和ssh两个玩具.别的还真没有其他什么东西了. ...

  9. ssh的免密登陆

    想必大家都有使用ssh登陆的过程了,那么,怎么设置ssh免密登陆呢?下面有一些我的总结: 环境:服务器主.从 主服务器:192.168.1.1 从服务器:192.168.1.2 实现主服务器ssh登录 ...

随机推荐

  1. git总是需要输入用户名密码问题解决

    解决办法: git bash进入你的项目目录,输入: git config --global credential.helper store 然后你会在你本地生成一个文本,上边记录你的账号和密码.当然 ...

  2. Machine Learning 02 学习笔记 卷积、感知机、神经网络

    理解卷积公式. 卷积的物理意义. 图像的卷积操作. 卷积神经网络. 卷积的三层含义. 感知机. 感知机的缺陷. 总结. 神经网络. 缺陷. 激活函数

  3. eNSP路由器启动#号问题排查

    1.删除拖出来的设备,重新拖出来一台---我用过[有时候好使] 2.确保Ensp的设置-工具-Virtual Box安装目录是否正确--我也遇到过[尤其是卸载掉Virtual Box重装之后] 3.确 ...

  4. SSM阶段学习-mybatis第一天

    首先今天我尝试了使用IDEA软件链接数据库,创建数据库,创建表. 在pom文件下导入maven坐标 [<?xml version="1.0" encoding="U ...

  5. java的Integer中也会有缓存

    在上篇<java的自动拆箱会发生NPE>博客中接收了java中的Integer中的自动拆箱产生的NPE,其实对于所有的包装类来说都是一样的,都会产生这样的问题,大家需要举一反三,做学问学知 ...

  6. JVM内存管理面试常见问题全解

    目录 一.什么是JVM 1.jvm的三个组成部分 二.类加载系统 1.类的加载过程 2.类加载器 三.双亲委派机制 1.双亲委派机制介绍 2.为什么要双亲委派机制 3.双亲委派机制的核心源码 4.全盘 ...

  7. Linux的软件安装tomcat 以及jdk

    因为tomcat的启动需要jdk,所以我们先安装jdk,安装完成后再安装tomcat 具体的文件大家可以到官网下载,下面介绍安装步骤 目录 jdk安装 1.通过xftp或者其他方式将安装包传到我们的L ...

  8. 论文解读(DCRN)《Deep Graph Clustering via Dual Correlation Reduction》

    论文信息 论文标题:Deep Graph Clustering via Dual Correlation Reduction论文作者:Yue Liu, Wenxuan Tu, Sihang Zhou, ...

  9. Java基础语法Day_05(数组的概念)

    第14节 数组         day05_01_数组的概念 day05_02_数组的定义格式一_动态初始化 day05_03_数组的定义格式二_静态初始化 day05_04_数组的定义格式三_省略的 ...

  10. jdk1.8中hashmap的扩容resize

    当hashmap第一次插入元素.元素个数达到容量阀值threshold时,都会扩容resize(),源码: (假设hashmap扩容前的node数组为旧横向node数组,扩容后的node数组为新横向n ...