More Related Content
Similar to Linux安全配置,公钥/私钥方式
Similar to Linux安全配置,公钥/私钥方式 (14)
Linux安全配置,公钥/私钥方式
- 1. 1. SecureCRT 生成公钥/私钥对,“OpenSSH 密钥格式”, (puttygen.exe 也
可以生成密钥对)
a. 公钥上传到服务器,导入到/root/.ssh/authorized_keys2 文件中;
#cat ./Identify.pub >> /root/.ssh/authorized_keys2
b. 修改 sshd 的配置文件;
$ sudo vim /etc/ssh/sshd_config
Protocol 2 /仅允许使用 SSH2
PubkeyAuthentication yes /*启用 PublicKey 认证
AuthorizedKeysFile .ssh/authorized_keys2 /*PublicKey 文件路径
PasswordAuthentication no /*禁止密码验证登录
c. 重启 sshd 服务;
#service sshd restart
d. 测试;
使用 SecureCRT 登录,ok,没有问题;
将私钥文件 Identify 给一台 Linux 客户端,
#ssh -i Identify username@server
同样 ok,也没有问题;
- 2. 提示:Linux 客户端中可能会出现提示说,private key file 未设保护;
只需要
#chmod 600 Identify
2. SecureCRT 生成公钥/私钥对,“标准公钥和 VanDyke 私钥格式”,
a. 公钥上传到服务器,格式转换后,导入到/root/.ssh/authorized_keys3 文件中;
# ssh-keygen -i -f /home/guoq/Identity2.pub >> /root/.ssh/authorized_keys3
b. 修改 sshd 的配置文件;
$ sudo vim /etc/ssh/sshd_config
Protocol 2 /仅允许使用 SSH2
PubkeyAuthentication yes /*启用 PublicKey 认证
AuthorizedKeysFile .ssh/authorized_keys3 /*PublicKey 文件路径
PasswordAuthentication no /*禁止密码验证登录
c. 重启 sshd 服务;
#service sshd restart
d. 测试;
- 3. 在 SecureCRT 中建立另外一个 Session,登录同样的服务器,只是私钥文件选
用 Identify2;
退出,
使用 SecureCRT 的 Session 登录,失败,因为公钥/私钥已经改变;
使用 SecureCRT 的 Session2 登录,ok,没有问题;
将私钥文件 Identify2 给一台 Linux 客户端,
#ssh -i Identify2 username@server
输入三次 passphrase 后,失败。
使用 SecureCRT 将 Identify2 转换成为 OpenSSH 格式后,Linux 客户端重试,
ok,没有问题;
3. xshell 生成公钥私钥对,DSA, openSSH 格式,
a. 公钥上传到服务器,导入到/root/.ssh/authorized_keys4 文件中;
#cat /home/guoq/id_dsa_1024.pub >> /root/.ssh/authorized_keys4
b. 修改 sshd 的配置文件;
#vim /etc/ssh/sshd_config
Protocol 2 /仅允许使用 SSH2
PubkeyAuthentication yes /*启用 PublicKey 认证
- 4. AuthorizedKeysFile .ssh/authorized_keys4 /*PublicKey 文件路径
PasswordAuthentication no /*禁止密码验证登录
c. 重启 sshd 服务;
#service sshd restart
d. 测试;
使用 xshell 登录,ok,没有问题;
将私钥文件 id_dsa_1024 给一台 Linux 客户端,
#ssh -i id_dsa_1024 username@server
同样 ok,也没有问题;
4. 将 xshell 的私钥文件 id_dsa_1024 给 SecureCRT 使用;
也同样 ok,没有问题;
5. 刚才的步骤 3 中,导出的私钥格式,选择为 OpenSSH,这样步骤 4 就没有
问题了;
- 5. 验证是否导出的私钥格式,选择为"User Key Files(*.pri)", 重复步骤 4,果然不
可以;
同样的,私钥格式,选择为"*.*", 重复步骤 4,也不可以;
Linux 安全配置,公钥/私钥方式
大概有如下几个方面:
1. 禁止 root 帐号 ssh,使用自定义帐号 ssh;
这样一来,黑客要先猜到帐号,然后才能猜解密码;
2. 禁止帐号登录,使用 pubkey 登录;
3. 作 ip ACL,只允许几个特定的 IP 访问;
4. ssh 端口迁移,将默认 22 端口改为其他端口;
5. 启动尽量少的服务;如无必要,不起服务。
但是测试 pubkey 的时候,发现了一个问题:使用 xshell 产生的私钥文件,拿到 securecrt 使用的时候,不
成功!
具体原因,请查看全文的最后一句结论。
问题 2:一台 Linux 机器如何使用私钥,ssh 另外一台 Linux?
命令格式如下:#ssh -i identity_file username@server
经过实验发现:xshell 产生的私钥文件,在 Linux 上面可以直接使用,没有问题;使用方法:
- 6. #ssh -i identity_file username@server
identity_file 为 xshell 产生的私钥文件;
经过搜索发现:SecureCRT 产生的私钥文件,在 Linux 上面也是可以使用的;
如果为“标准公钥和 VanDyke 私钥格式”,那么需要使用 ssh-keygen 转换一下,然后使用即可;
如果为“OpenSSH 密钥格式”,就无需转换,可以直接使用。
也就是说:xshell 可以与 Linux 共享私钥文件(private key file), SecureCRT 也可以于 Linux 共享私钥文件
(private key file), 为什么 xshell 与 SecureCRT 不可以共享私钥文件呢?
我们将整个过程梳理一遍;
1. SecureCRT 生成公钥/私钥对,“OpenSSH 密钥格式”,
a. 公钥上传到服务器,导入到/root/.ssh/authorized_keys2 文件中;
#cat ./Identify.pub >> /root/.ssh/authorized_keys2
b. 修改 sshd 的配置文件;
$ sudo vim /etc/ssh/sshd_config
Protocol 2 /仅允许使用 SSH2
PubkeyAuthentication yes /*启用 PublicKey 认证
AuthorizedKeysFile .ssh/authorized_keys2 /*PublicKey 文件路径
PasswordAuthentication no /*禁止密码验证登录
c. 重启 sshd 服务;
#service sshd restart
d. 测试;
- 7. 使用 SecureCRT 登录,ok,没有问题;
将私钥文件 Identify 给一台 Linux 客户端,
#ssh -i Identify username@server
同样 ok,也没有问题;
提示:Linux 客户端中可能会出现提示说,private key file 未设保护;
只需要
#chmod 600 Identify
2. SecureCRT 生成公钥/私钥对,“标准公钥和 VanDyke 私钥格式”,
a. 公钥上传到服务器,格式转换后,导入到/root/.ssh/authorized_keys3 文件中;
# ssh-keygen -i -f /home/guoq/Identity2.pub >> /root/.ssh/authorized_keys3
b. 修改 sshd 的配置文件;
$ sudo vim /etc/ssh/sshd_config
Protocol 2 /仅允许使用 SSH2
PubkeyAuthentication yes /*启用 PublicKey 认证
AuthorizedKeysFile .ssh/authorized_keys3 /*PublicKey 文件路径
PasswordAuthentication no /*禁止密码验证登录
c. 重启 sshd 服务;
- 8. #service sshd restart
d. 测试;
在 SecureCRT 中建立另外一个 Session,登录同样的服务器,只是私钥文件选用 Identify2;
退出,
使用 SecureCRT 的 Session 登录,失败,因为公钥/私钥已经改变;
使用 SecureCRT 的 Session2 登录,ok,没有问题;
将私钥文件 Identify2 给一台 Linux 客户端,
#ssh -i Identify2 username@server
输入三次 passphrase 后,失败。
使用 SecureCRT 将 Identify2 转换成为 OpenSSH 格式后,Linux 客户端重试,ok,没有问题;
3. xshell 生成公钥私钥对,DSA, openSSH 格式,
a. 公钥上传到服务器,导入到/root/.ssh/authorized_keys4 文件中;
#cat /home/guoq/id_dsa_1024.pub >> /root/.ssh/authorized_keys4
b. 修改 sshd 的配置文件;
#vim /etc/ssh/sshd_config
Protocol 2 /仅允许使用 SSH2
PubkeyAuthentication yes /*启用 PublicKey 认证
AuthorizedKeysFile .ssh/authorized_keys4 /*PublicKey 文件路径
- 9. PasswordAuthentication no /*禁止密码验证登录
c. 重启 sshd 服务;
#service sshd restart
d. 测试;
使用 xshell 登录,ok,没有问题;
将私钥文件 id_dsa_1024 给一台 Linux 客户端,
#ssh -i id_dsa_1024 username@server
同样 ok,也没有问题;
4. 将 xshell 的私钥文件 id_dsa_1024 给 SecureCRT 使用;
也同样 ok,没有问题;
5. 刚才的步骤 3 中,导出的私钥格式,选择为 OpenSSH,这样步骤 4 就没有问题了;
验证是否导出的私钥格式,选择为"User Key Files(*.pri)", 重复步骤 4,果然不可以;
同样的,私钥格式,选择为"*.*", 重复步骤 4,也不可以;
so. 结论是,如果是 OpenSSH 格式的私钥文件,那么 xshell, SecureCRT, Linux 客户端均可以使用。