如何在SecureCRT上使用公钥登陆Linux服务器
在SecureCRT上使用公钥登陆Linux服务器的方法:
一、SecureCRT部分配置
1、首先生成公钥。
打开SecureCRT(我的版本为70,估计其他版本基本相同)程序,点击菜单栏的“工具”-》“创建公钥”。按照步骤执行。其中一步比较重要就是选择公钥的格式。建议选择“OpenSSH”,否则在服务器端使用时需要转换为OpenSSH各式。何必多次一举呢。所以这里必须选择“OpenSSH”。如果选错了。重新生成一次就可以了。
然后选择公钥私钥存放的地方。默认Identity是私钥,Identitypub是公钥。
2、把Identitypub文件上传到你要登陆的Linux服务器上。方法有很多,比如ssh(先不要配置为公钥登陆),ftp等。具体操作自己搞定。上传时选择ASCII方式。
3、在SecureCRT创建服务器连接。协议使用ssh。在“鉴权”方法中,取消勾选“密码”。选择“公钥”,然后点击右边的属性按钮,在对话框中。
使用全局公钥设置:表示所有连接都使用该公钥连接服务器。
使用会话公钥设置:可以分别为每个连接指定不同的公钥。
下面的路径就是指明私钥的具体路径。注意了,这里要指明私钥的路径。保存连接就可以了。
二、Linux服务器端配置
1、sshd_conf配置
主要修改如下几个内容:
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/rcd/sshd restart
2、重点部分:配置公钥存放哪的问题。
要把第一部分上传上来的公钥放到用户home目录的ssh/ 目录下。这里说明一下。如果你想使用test账号登陆,就要把公钥放到test账户的ssh目录下。你可以直接把Identitypub改为authorized_keys 当然也可还是用其他方法。
比如:cat Identitypub >> authorized_keys
另外说明一下。ssh目录权限是700,authorized_keys文件权限为644
重点补充,如果还有其他人也想用自己的公钥登陆服务器, 正常操作应该为该用户在服务器上创建一个账号,重新执行本次(Linux服务器端配置,第2点)操作。当然也可以偷懒,把公钥也放到test账号的authorized_keys文件中。但两个公钥的内容之间使用换行符隔开。这样的方法还是不可取的。
3、最后,使用SecureCRT登陆linux服务器。
这里要注意,即使使用公钥登陆服务器,当连接的时候,还是要输入用户名。不是说公钥验证么,其实,服务器要知道用你的私钥和哪个用户的ssh目录下的authorized_keys文件内容进行解密。不可能用私钥和所有的用户authorized_keys文件进行匹配测试。
但是也有例外,如果在linux系统上使用公钥登陆Linux服务器,就不需要指明用户。方法如下:
# ssh 1721624222
这时系统默认以为登陆的远程账号就是当前登陆的账号。
如果设置了公钥口令,连接时比如输入。为了安全,这个口令是必须要有的。在SecureCRT中,口令被翻译为:通行短语。
1、防篡改有很多方法,对一些金融机构采用CFCA证书。私钥加密,公钥解密。
2、如果只是一般的防篡改,客户也可以对接口参数进行加密,服务端进行解密后,对参传入参数验证是否一致,如果不一致就拒绝,如果一致就处理。
3、还有一种也经常被采用的就是mac 在请求的参数进行mac加密,mac可以硬件服务哦,相对成本可会有一些,如果有贵公司有加统一的加密平台是可以使用的。
对于超时的设置看根据业务场境的,你们描述有些简单,不太好具体说明。
一: 非对称加密方式原理:
1:传送方将数据用Hash算法得到报文摘要,用自己的私钥加密,得到数字签名。
2: 传送方用接收方的公钥将明文和数字签名进行加密,然后发送给接收方。
3:接收方收到加密报文,用自己的私钥解密得到数据和数字签名。
4:接收方用传送方的公钥解密数字签名,得到报文摘要,再用公开的Hash算法算出保报文的摘要,与传送方的对比,若果相同,证明真实,否则被篡改。
二: Open SSH 使用的就是非对称加密的方式,来进行远程控制。
SSH的密码验证过程
1:首先,客户端第一次连接,服务端将公钥发给客户端,存放在 ~/ssh/known_hosts 文件中。
2:客户端随机生成一个字符串,用服务器的公钥加密,传送给服务端。
3:服务端用自己的私钥解密,得到客户端的字符串,然后再次发送给客户端,验证服务器端的真假。
4:客户端通过用户和密码来验证自己的合法性。
SSH的公私钥对验证步骤:
1: 客户端使用ssh-genkey 生成一对公私钥。分别是 ~/ssh/id_rsa (私钥) ~/ssh/id_rsapub(公钥) 。
2:使用 ssh-copy-id root@1721611 将自己的公钥传送到服务器的 ~/ssh/authorized_keys 文件中,该文件在使用该命令的时候自动在服务端生成。文件中存放的是各个客户端的公钥的集合。
三:Open SSH的配置文件。
1: 客户端配置文件 /etc/ssh/ssh_config 基本上不用配置参数。
2:服务端配置文件 /etc/ssh/sshd_config
a 将PermitRootLogin 字段改为 no 则可以限制管理员使用SSH远程,可以提高安全性。
b port 字段可以改变sshd的侦听端口
3:客户端命令在 /usr/bin/ssh 服务端命令在 /usr/sbin/sshd
4:Windows的SSH远程管理软件有 SecureCRT 和 WinSCP
5: 在Windows系统中使用SecureCRT时,在服务器中安装一个lrzsz的rpm包,可以直接将文件从Windows中拖入到终端上传到服务器中。
,电脑群:189034526
0条评论