1). client ---> server

客户端发起对服务器的连接,登录服务器。

2). 须在客户端生成密钥对

注意:

公钥加密私钥解;私钥加密公钥解。

可以发布公钥,但私钥是不能出本机的。

把公钥给谁就授信谁,信任谁的身份。

$ ssh-keygen -t rsa
不需要给passphrase,同时初次会在用户家目录下生成.ssh/,且生成id_rsa和id_rsa.pub两个文件。
也可以使用如下命令
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

3). 将客户端的公钥复制到服务器端

$ scp .ssh/id_rsa.pub user@192.168.0.11:~/.ssh/
这里192.168.0.11是服务器,user是服务器上的用户。

4). 服务器上的操作

$ cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
.ssh/需要700权限 注意,文件.ssh/authorized_keys的格式如下:
-------------------------------------------------------------------------
ssh-rsa AAAAB3NzaC1...... user1@node01
ssh-rsa AAAAB3PzcIIE1...... user2@node02
ssh-rsa AAAAB3NzaC1...... user3@node03
-------------------------------------------------------------------------
一行一个公钥密钥串(UNIX回车换行,可以用vim的o指令添加)。
每行以ssh-rsa开头,最后为描述信息,形如:user1@node01。描述信息是可选的。 上述3和4步可以合成如下一步完成:
$ ssh-copy-id 192.168.0.11
或者
$ ssh-copy-id -i ~/.ssh/id_rsa.pub bee@192.168.1.1 最后服务器上配置 /etc/ssh/sshd_config 并重启服务:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

关于兼容性:

  • 对于错误

Unable to negotiate with legacyhost: no matching key exchange method found.

Their offer: diffie-hellman-group1-sha1

使用如下命令设置

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@legacyhost

或者修改配置文件 ~/.ssh/config
Host somehost.example.org (域名或IP)
KexAlgorithms +diffie-hellman-group1-sha1
  • 对于错误

Unable to negotiate with legacyhost: no matching host key type found. Their offer: ssh-dss

使用如下命令设置

ssh -oHostKeyAlgorithms=+ssh-dss user@legacyhost

或者修改配置文件 ~/.ssh/config
Host somehost.example.org (域名或IP)
HostKeyAlgorithms +ssh-dss
  • 查询ssh支持的算法
ssh -Q cipher       # List supported ciphers
ssh -Q mac # List supported MACs
ssh -Q key # List supported public key types
ssh -Q kex # List supported key exchange algorithms
  • 查询连接特定主机时所使用的配置
ssh -G user@somehost.example.com
  • ssh登陆兼容性问题处理实例
$ ssh user@192.168.1.10
Unable to negotiate with 192.168.1.10 port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1 $ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@192.168.1.10
Unable to negotiate with 192.168.1.10 port 22: no matching cipher found. Their offer: aes256-cbc,aes128-cbc,3des-cbc,des-cbc $ ssh -Q cipher
3des-cbc
aes128-cbc
aes192-cbc
aes256-cbc
rijndael-cbc@lysator.liu.se
aes128-ctr
aes192-ctr
aes256-ctr
aes128-gcm@openssh.com
aes256-gcm@openssh.com
chacha20-poly1305@openssh.com $ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c aes128-cbc user@192.168.1.10 debug:
$ ssh -vvvv -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc user@192.168.1.10

配置文件 ~/.ssh/config

Host 192.168.1.10 example.org
user someone
KexAlgorithms diffie-hellman-group1-sha1
Cipher 3des-cbc

ssh免口令密码登录及兼容性处理的更多相关文章

  1. centos7 ssh免口令认证登录

    摘要:centos7, xshell, 公钥,  ssh ssh登录方式有口令认证登录和密钥认证登录 接下来本次介绍是ssh密钥登录方式 (1)产生公钥 (2)将公钥放置到centos7的(/root ...

  2. 利用系统自带工具快速实现SSH免密远程登录

    一.软件环境 操作系统:CentOS Linux release 7.4.1708 (Core) SSH版本 [root@Geeklp201 ~]# ssh -V OpenSSH_7.4p1, Ope ...

  3. Linux SSH 免秘钥登录

    SSH 免秘钥登录 ssh:是一种安全加密协议 ssh  username@hostname     ssh gongziyuan.com:以当前用户登录该机器(如果不是当前用户,需要这么干:ssh ...

  4. linux下ssh免秘钥登录

    1.检查防火墙是否关闭 (1)切换到root用户 (2)查看防火墙状态 service iptables status 这是没有关闭 (3)设置关闭 service iptables stop 2.检 ...

  5. 多节点ssh免密匙登录

    1,在所有节点上,使用yourname用户名执行: ssh-keygen -t dsa -P '' -f /home/yourname/.ssh/id_dsa 2,在node1的/home/yourn ...

  6. ssh 免密root登录

    安装SSH SERVER 在所有的节点上都安装SSH server服务. # apt-get install openssh-server1 因为我们搭建的Ceph直接使用root用户,所以需要修改s ...

  7. L07-Linux配置ssh免密远程登录

    本文配置可实现:集群服务器之间相互可以ssh免密登录.若只想从单一机器(如master)ssh免密登录其他机器(slave1.slave2),则只跟着操作到第二步即可. 建议先花两三分钟把全文看完再跟 ...

  8. 谷歌云ssh开启root密码登录

    修改配置 1.先选择从浏览器打开ssh连接服务器 连接登录成功后,输入以下命令 sudo -i #切换到root passwd #修改密码 然后会要求输入新密码,然后再重复一次密码,输入密码的时候不会 ...

  9. ssh免秘钥登录

    简介 SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定:SSH 为建立在应用层基础上的安全协议.SSH 是目前较可靠,专为远程 ...

随机推荐

  1. Docker在CentOS7中的安装与启动

    Docker是当下很流行的应用容器,在系统快速部署方面有着独特的优势.由于最近在做的一个项目需要用到Docker,所以找了些资料学了学.Docker不仅仅在应用快速部署方面有着独特的优势,而且在资源共 ...

  2. Android - Gradle架构中使用的“.so”库

    Android使用Gradle架构的Android应用,需要对.so库做特殊的处理,因为会找不到,就会导致编译正确,使用错误:常见的使用情况是根据不同的cpu,有不同的库,包括:armeabi,mip ...

  3. 你的MySQL服务器开启SSL了吗?(转载)

    最近,准备升级一组MySQL到5.7版本,在安装完MySQL5.7后,在其data目录下发现多了很多.pem类型的文件,然后通过查阅相关资料,才知这些文件是MySQL5.7使用SSL加密连接的.本篇主 ...

  4. 来自鸟哥的lftp客户端软件使用方法

    lftp (自動化腳本) 單純使用 ftp 總是覺得很麻煩,有沒有更快速的 ftp 用戶軟體呢?讓我們可以使用類似網址列的方式來登入 FTP 伺服器啊?有的,那就是 lftp 的功能了! lftp 預 ...

  5. 十九、python内置函数汇总

    '''内置函数abs():取绝对值all():每个元素都为真,才是真any():有一个元素为真即为真bin():十进制转二进制hex():十进制转十六进制int():所有的转成十进制oct():十进制 ...

  6. Linux随笔 - vi/vim 编辑器显示行号

    显示行号 1. 打开vi 编辑器 2. 输入  :set number 3. 回车 关闭行号显示 1. 打开vi 编辑器 2. 输入  :set nonumber 3. 回车 行号在每次打开 vi/v ...

  7. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_03 斗地主案例(单列)_1_斗地主案例的需求分析

    洗牌用到集合工具类.Collections里面有个shuffle的方法 完整的需求分析

  8. Delphi中堆栈区别

     http://blog.csdn.net/zang141588761/article/details/52838728 Delphi中堆栈区别 2016-10-17 14:49 277人阅读 评论( ...

  9. 【ABAP系列】SAP ABAP ALV中的TOP_OF_PAGE添加任意图标

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP ABAP ALV中的TOP_ ...

  10. python 入门学习之anaconda篇

    还没下载的同学先点击这里进入anaconda官方网站进行下载. 然后点击安装,注意的是这里 安装好了之后呢,我们就开始进行Conda的环境管理,Conda的环境管理功能允许我们同时安装 若干不同版本的 ...