服务器公钥地址
① SSH详解-2.ssh基本用法
SSH详解-1.ssh基础知识
SSH详解-2.ssh基本用法
SSH详解-3.密钥登陆
SSH详解-4.多个ssh公钥
OpenSSH 的客户端是二进制程序 ssh,linux 系统一般都自带 ssh。新版的win10开启ssh服务,但不是很好用,可以使用一些好用的软件 Xshell 、 Putty 等
安装OpenSSH 以后,可以使用 -V 参数输出版本号,查看一下是否安装成功。
ubuntu
windows
ssh最常用的用途就是登录服务器,当然这需要服务器再运行着sshd。
ssh 登录服务器的命令如下,例如连接局域网内一台ip地址为192.168.1.98的主机
上面命令中,root是用户名,@后面的是主机名,它可以是域名,也可以是 IP 地址或局域网内部的主机名。
用户名也可以使用ssh的 -l 参数指定,这样的话,用户名和主机名就不用写在一起了。
ssh 默认连接服务器的22端口, -p 参数可以指定其他端口。
上面命令连接服务器192.168.1.98的8888端口,这里没有指定用户名。将使用客户端的当前用户名,作为远程服务器的登录用户名。
刚刚应该注意到这段话了,这段话是什么意思呢?
上面这段话的意思是192.168.1.98这个服务器的指纹是陌生的,是否要继续连接(输入 yes or no )。
接下来,输入 yes 后ssh会将当前服务器的指纹存储在本机 ~/.ssh/known_hosts 文件中。以后再连接的时候,就不会再出现警告了。
也就是说,ssh通过判断当前服务器公钥的指纹是否存在于~/.ssh/known_hosts文件中,来判断是否为陌生主机
然后,客户端就会跟服务器建立连接。
接着,ssh 要求用户输入所要登录账户的密码,用户输入密码验证成功后就可以使用远程shell了。
ssh(1) - OpenBSD manual pages
② ssh连接的时候客户端的公钥存在服务端的什么地方
客户端 ssh-keygen 产生公钥与私钥
服务端 /root/.ssh/authorized_keys 。ssh是隐藏文件夹 ,追加到 authorized_keys 文件最后
root的家目录 /root /
其他用户 的家目录 /home/用户名/
③ 如何在SecureCRT上使用公钥登陆Linux服务器
SecureCRT部分配置
1、首先生成公钥。
打开SecureCRT(我的版本为7.0,估计其他版本基本相同)程序,点击菜单栏的“工具”-》“创建公钥”。按照步骤执行。其中一步比较重要就是选择公钥的格式。建议选择“OpenSSH”,否则在服务器端使用时需要转换为OpenSSH各式。何必多次一举呢。所以这里必须选择“OpenSSH”。如果选错了。重新生成一次就可以了。
然后选择公钥私钥存放的地方。默认Identity是私钥,Identity.pub是公钥。
2、把Identity.pub文件上传到你要登陆的Linux服务器上。方法有很多,比如ssh(先不要配置为公钥登陆),ftp等。具体操作自己搞定。上传时选择ASCII方式。
3、在SecureCRT创建服务器连接。协议使用ssh。在“鉴权”方法中,取消勾选“密码”。选择“公钥”,然后点击右边的属性按钮,在对话框中。
使用全局公钥设置:表示所有连接都使用该公钥连接服务器。
使用会话公钥设置:可以分别为每个连接指定不同的公钥。
下面的路径就是指明私钥的具体路径。注意了,这里要指明私钥的路径。
保存连接就可以了。
Linux服务器端配置
1、sshd_conf配置
vi /etc/ssh/ssh_config
主要修改如下几个内容:
PermitRootLogin no # 默认为注释,先配置为禁止root用户登陆,允许root登陆太危险了。好几次差点犯错误。切记切记!
RSAAuthentication yes #默认为注释, 启用 RSA 认证
AuthorizedKeysFile .ssh/authorized_keys # 验证公钥的存放路径
PubkeyAuthentication yes # 默认为注释,启用公钥认证
PasswordAuthentication no # 禁止密码认证,默认是打开的。
保持后,重新启动ssh服务。在不同的linux服务器上,重启的方法不同。
RedHat,CentOS: service sshd restart //redhat 7 的方法已经改了。
openbsd,freebsd: /etc/rc.d/sshd restart
2、重点部分:配置公钥存放哪的问题。
要把第一部分上传上来的公钥放到用户home目录的.ssh/ 目录下。这里说明一下。如果你想使用test账号登陆,就要把公钥放到test账户的.ssh目录下。你可以直接把Identity.pub改为authorized_keys. 当然也可还是用其他方法。
比如:cat Identity.pub >> ~/.ssh/authorized_keys
④ 【Linux】SSH 使用密码/公钥远程登录总结
本文是笔者查阅网上资料做的总结,关于SSH原理,什么是对称加密和非对称加密,本文不过多介绍。这里介绍一下SHH的工作过程、配制方法,可能出现的问题及解决方法。
说明:本文中涉及的例子,SSH客户端为:本地主机A,SSH服务器为:服务器B
SSH协议采用C-S(客户端-服务器端)架构进行双方的身份验证以及数据的加密。
服务器端组件监听指定的端口,负责安全连接的建立、对连接方的身份认证、以及为通过身份认证的用户建立正确的环境。
客户端负责发起最初的TCP握手、安全连接的建立、验证服务器的身份与之前记录中的一致、并将自己的验证信息提供给服务器。
一个SSH会话的建立过程分为两个阶段。第一阶段,双方沟通并同意建立一个加密连接通道以供后续信息传输用。第二阶段,对请求接入的用户进行身份验证以确定服务器端是否要给该用户开放访问权限。
当客户端发起TCP连接时,服务器端返回信息说明自己支持的协议版本,如果客户端上支持的协议与之匹配,则连接继续。服务器会提供自己的公共主机密钥(public host key)以让客户端确认自己访问的是正确的机器。
然后,双方采用一种Diffie-Hellman算法共同为该会话建立密钥。每一方的一部分私有数据,加上来自对方的一部分公共数据,通过这种算法计算,能够得出完全相同的密钥用于本次会话。
整个会话的通讯内容都使用该密钥进行加密。这个阶段使用的公钥/私钥对与用户验证身份用的SSH密钥是完全无关的。
经典Diffie-Hellman算法的计算步骤如下:
这个共享密钥的加密方式被称为二进制数据包协议(binary packet protocol)。该过程能够让双方平等的参与密钥生成的过程,而不是由单方掌握。这种共享密钥生成的过程是安全的,双方没有交换过任何未经加密的信息。
生成的密钥是对称式密钥,一方用于加密信息的密钥等同于另一方用于解密信息的密钥,而任何第三方由于不持有该密钥,是无法解密双方传递的内容的。
会话加密通道建立后,SSH开始进入用户认证阶段。
下一步,服务器验证用户身份以决定是否准许其访问。验证有不同的方式,选择的验证方式取决于服务器的支持。
最简单的验证是密码验证:服务器要求客户端输入密码,客户端输入的密码经过上述的通道加密传输给服务器。
虽然密码是加密过的,然而该方法仍然不被推荐,因为用户经常为了省事而使用过于简单的密码,而这类密码很容易就能够被自动化脚本破解。
最流行的验证方式是SSH密钥对,这也是当前最推荐的方式。SSH密钥对是非对称密钥,私钥和公钥分别用于不同的功能。
公钥用于加密,而私钥用于解密。公钥可以随意上传、共享,因为公钥的流通并不会危及到私钥的保密性。
SSH密钥对的验证过程起始于上一部分加密通道建立之后,其具体执行步骤如下:
简单来说,服务器端用公钥加密信息,客户端用私钥解密信息以证明自己持有私钥。该过程同时使用了对称加密和非对称加密,两种方式各有自己的功用。
命令如下:
用户名:为要登录的服务器B中已存在的用户账户名
IP地址:为服务器B的IP地址
-p 端口号:用来指定端口号,默认为22
第一次登录时,会提示如下提示:
大概意思是说,你正在访问的主机不能验证它的真实性,它的RSA key(当前访问主机的公钥)指纹是怎样的,你确定要继续连接吗?
输入yes继续,会提示,已永久把当前访问主机的RSA key添加到了已知主机文件(用户目录下,.ssh 文件夹中的knwon_hosts文件)中。之后再次 SSH 登录就不再有该提示了。
接着,输入登录账户的密码即可。
SSH 密码登录,需要服务器开启密码验证权限,编辑服务器SSH配置命令如下:
在 sshd_config 文件中,Protocol 2 下面 #PasswordAuthentication yes,将前面的#号去掉,保存退出。
公钥登录,即免密码登录。避免的每次登录都要输入的麻烦,也防止了中间人攻击。是SSH远程登录最常用的登录方式。
提示输入密钥对名称,直接回车,使用默认名称即可;
提示输入密码(使用私钥时,要输入密码),直接回车,不使用密码即可。
首先,登录服务器B,在进行下面的操作。
找到 #PubkeyAuthentication yes,删除 #号,保存退出。
重启 ssh 服务
也可指定验证私钥:
本地主机A,生成密钥对后:
sudo vim /etc/selinux/config
⑤ linux公钥登录远程服务器
1、公私钥简介与原理
公钥和私钥都属于非对称加密算法的一个实现,这个加密算法的信息交换过程是:
非对称加密算法不能使用相同的密钥进行解密,也就是说公钥加密的只能使用私钥进行解密。
2、使用密钥进行ssh免密登录
ssh使用私钥登录大致步骤就是:主机A(客户端)创建公钥私钥,并将公钥复制到主机B(被登陆机)的指定用户下,然后主机A使用保存私钥的用户登录到主机B对应保存公钥的用户。
** 两台主机:**
ssh-keygen -t rsa
-t rsa可以省略,默认就是生成rsa类型的密钥
ssh--id -i ~/.ssh/id_rsa.pub [email protected]
** 方法二:自己创建文件进行拷贝**
⑥ SSH详解-4.多个ssh公钥
SSH详解-1.ssh基础知识
SSH详解-2.ssh基本用法
SSH详解-3.密钥登陆
SSH详解-4.多个ssh公钥
前面说了利用密钥ssh可以快速登录,而不用每次都输入密码。
有时候在github和gitee中我们想用不同的密钥登录,或者某个服务器我们想使用另外一个公钥登录。这就情况下我们就需要配置多个公钥。
我们在生成私钥和公钥的默认的名称是 id_rsa 。前面已经详细说过密钥登录流程了,而密钥登录的时候会默认读取 id_rsa 密钥进行验证。因此,我们在使用多个密钥对的时候,必须告诉ssh哪个服务器验证用哪个密钥。
在一台电脑上生成多个公钥格式 ssh-keygen -t rsa -C 邮箱 公钥名 ,详细参数上一节已经说过了。
在 ~/.ssh/ 文件夹下面默认是没有config文件的,要配置多少个ssh公钥我们需要在该文件夹下新建一个 config 文件。
User 登录的用户名, IdentityFile 密钥文件路径, HostName 服务器ip地址或者域名。
Host 主机名,为什么把这个放到最后说呢?
需要注意一点配置完后应使用 ssh root@tenxun 来登录 ,也就是说@后面的是Host不是HostName。