证书登录:

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

证书登录原理:

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

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. Input框搜索关键字高亮显示

    ruleTitle(text, val) { if (!val) return text; const result = text.replace( new RegExp(val, "g&q ...

  2. PyQt5 基本语法(四)

    目录 2. 输入控件(一) 2.1 纯键盘 2.1.1 QLineEdit 2.1.1.1 描述 2.1.1.2 控件创建 2.1.1.3 输出模式 2.1.1.4 提示字符串 2.1.1.5 清空按 ...

  3. Leetcode216/39/40/77之回溯解决经典组合问题

    Leetcode216-组合总和三 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9 每个数字 最多使用一次 返回 所有可能的有效组合的列表 .该列表不能包含相同的组合两 ...

  4. Blazor 发布WebAssembly使用Brotli 压缩提升初次加载速度

    使用Brotli提高网站访问速度 在优化网站打开速度上,我们有很多的方法,而其中一个就是减少诸如Javascript和CSS等资源文件的大小,而减少文件大小的方法除了在代码上下功夫外,最常用的方法就是 ...

  5. DFS与N皇后问题

    DFS与N皇后问题 DFS 什么是DFS DFS是指深度优先遍历也叫深度优先搜索. 它是一种用来遍历或搜索树和图数据结构的算法 注:关于树的一些知识可以去看<树的概念及基本术语>这篇文章 ...

  6. .NET Core(.NET6)中gRPC注册到Consul

    一.简介 上一篇文章介绍了.NET Core 中使用gRPC,在微服务中,我们通常要把服务做成服务注册,服务发现的方式,那么这里来说一下gRPC是如何注册到Consul中的. Consul的安装这里就 ...

  7. nodejs使用jquery风格环境安装

    BEGIN; 1.npm install jQuery 注意:是jQuery,不是jquery! 2.npm install jsdom 注意:直接执行会安装错误,必须先指定安装版本! 解决:修改pa ...

  8. 如何使用 pyqt 实现 Groove 音乐播放器

    前言 Win10 自带了一款很好用的音乐播放器 -- Groove 音乐,但是只能支持本地音乐的播放.2020年3月底到4月底,自己一直在学习 PyQt5,然后从 2020年5月开始,着手使用 PyQ ...

  9. 使用Proftpd支持FTP/SFTP权限管控

    简介 FTP 文件传输协议,FTP由FTP服务器(存储文件)和FTP客户端(通过FTP协议访问FTP服务器上的资源)组成 传输方式 主动模式(Port) 客户端与服务器端的TCP 21端口建立连接 - ...

  10. asp.net core MVC 添加静态文件

    ASP.net Core 中添加插件需要 1.将文件放在wwwroot文件夹下(根目录文件夹,没有的话需要创建) 2.需要在project.json中的dependencies添加如下依赖 " ...