关于Linux系统Authentiaction Key远程安全登录
变更记录
| 时间 | 变更人员 | 变更内容 | 版本号 | 审批人 | 生效日期 |
| 2007-4-28 | yangdeyou | create | V1.0 | ||
关健词:OpenSSH OpenSSL KEY USER PASSWORD Putty SecureCRT
内容摘要:
Linux系统信息安全中,系统帐号管理很容易出现弱口令,而且很容易记录,这样口令很容易被盗用。如果没有集中管理用户帐号,运行系统中存在很多帐号这样也不方便维护。通过OpenSSH的Pubkey Authentication验证,可以加强口令的管理。
- SSH口令与Authentication key的管理比较;
- OpenSSH 配置;
- Authentication key的产生、管理和转换;
- Putty 0.59 Authentication key登录实现;
- SecureCRT Authentication key登录实现;
- Key登录管理策略;
1、SSH口令与Authentication key的管理比较
| 验证方式 | ROOT帐号 | 应用服务帐号(eg.oracle/test) | 监控、测试(bjjk) |
| 口令 | 口令容易被随意记录 | 口令容易被随意记录; 如果多个人维护,有多个帐号多个密码,维护人员自己更改口令,容易产生弱口令; 临时用户要建立临时帐号; | 口令容易被随意记录; 如果多个人维护,有多个帐号多个密码,维护人员自己更改口令,容易产生弱口令; 临时用户要建立临时帐号; |
| Key | 一个root专用Key,对Key+私钥密码进行妥善保存,用Key进行登录;系统安全工程师对用户私钥进行定期更新,以减少key泄漏引发的安全问题 | 建立一角色用户,管理人员制作KEY+私钥密码,用Key进行登录; 用户妥善保存+私钥密码; 用户不能更改密码,密码管理由安全工程师进行管理; 系统安全工程师对用户私钥进行定期更新,以减少key泄漏引发的安全问题; | 建立一角色用户,管理人员制作KEY+私钥密码,用Key进行登录; 用户妥善保存+私钥密码; 用户不能更改密码,密码管理由安全工程师进行管理; 系统安全工程师对用户私钥进行定期更新,以减少key泄漏引发的安全问题; |
在服务器上配置/etc/ssh/sshd_config Authentication key选项:
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
重启sshd服务:
#service sshd restart
#service sshd restart
将 后面产生的Pulblic Key追加到角色$HOME目录的.ssh/authorized_keys后。在Linux客户端,把PRIVATE KEY(id_sda)复制到$HOME/.ssh/下,Putty客户端把PRIVATE KEY复制到windows待用。
3、Authentication key的产生、管理和转换ssh-keygen产生:
$ssh-keygen -d
Generating public/private dsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):xxxxx
Enter same passphrase again:xxxxx
Your identification has been saved in /home/test/.ssh/id_dsa.
Your public key has been saved in /home/test/.ssh/id_dsa.pub.
The key fingerprint is:
d9:63:1f:b5:9a:59:01:64:c0:0b:92:a7:57:71:a0:02 test@oDextest
ssh-keygen更改passphrase。
$ssh-keygen -p -f .ssh/id_dsa
Enter old passphrase:xxxxx
Key has comment '.ssh/id_dsa'
Enter new passphrase (empty for no passphrase):yyyyy
Enter same passphrase again:yyyyy
Your identification has been saved with the new passphrase.
PuttyKey、SecureCRT产生的Public Key转换成为Openssh兼容格式
$ssh-keygen -i -f mykey.pub >> $HOME/.ssh/authorized_keys2
Note:more information see man ssh-keygen
私钥内容:
$cat .ssh/id_dsa
-----BEGIN DSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,3C3DB2FD39971AF0
lVJ5EA7BtiJF4ha+qnuHIe890QFWAiOI3kHw1S32KkZ2NUbYWfMtSo1ojxDwV2nF
5Q5hxBiv6p6ZkVYIVJltvxuf3ZjqsVBoJPDcFf4LorvLCio/9lOs20aJZaJrnqw6
69hG4mkIwKud2PW5sJAxyBpjhJOJDjGJnZjpON30RztHN+0hcLuZDRR+ocdzw4Kx
kvbXUEvBVDS78jiJ5Z1aRtv3vKKr3s0oC4qCtG/7dn/+GyL0j9bzbrAgCcw8YoE9
pHbihqzzEaJxJDsd3okwro+EPqbJNKzJxsNX9AAiEdFZuVlUgg+HpNJCgYtxfiq6
BpoLg5U/7EBAiXhDpQ7pC9nFUT/jDh9KmrdlRhxZNlkLciBqFcBRQaSlfjlJEttD
dXgNB+a7BsS5BqSnWbcuWcf7hbzdADvQwQrgeS9kvBSjPpAQ/1wrOsEIkbxPu1Op
R+klHiGn/VQMavqNyQO72vAllg1U3jYKx2k+cbwHjQLpfiyVIGP2Dj+YFmLEmyS4
XViaDxpL+mJ3trBV6ZQhsQbO8JwqAuFdNdcP6y7ACOBsbQoKk2ELJxQGvO7rqsMG
bvtD1VQ8Z6dCvPemrhpLbFnesgyt0cxr
-----END DSA PRIVATE KEY-----
公钥内容:
$cat .ssh/id_dsa.pub
ssh-dss AAAAB3NzaC1kc3MAAACBANEtlwb/byEQZLxTcgRaDjR6y45Rzn9aRrNyBKn8EjXA
4xeUarZ30AfbqMAwI6gI6tpBOS4veKEkQkJTLKBJyo5OCczTKB5JWicbCf9k509AmRbiBR3M
hbk6zL9OktFv1hX4eI0lU3DeTvQORJ60w2zgyMvZCMg+3Y/YRQ1vIe/rAAAAFQDka0QYqYLK
G4bzuVirsdcHrGN1UQAAAIEAu/oywdIorigeMYHpGXsCBPkJhMVrSkMDgNFENWj/fGUDibR0
GRcqOy2Ms3Xu9SzIJq/qASmQSOUnc88LMx/uD+bRw43b7WiLrTFesaFctJf/AgZ7oE97WQjq
wPEI9Ti2RZkkU0XXYiY7Hcnz5eiMRaeCW7TIWs1T8OHdIHCjfFMAAACBAKHPEZ5REfjte6+e
3fyGb0/C284fYqeGHRV8RfCLbqbAjlutmyOSs5lEasvr0Pdo7un5kSREWJ+yi9S7vOc80XGj
yULY2Vuu9GGFJRqoy/8PkwJMZwmz4LAP8m9VkCe+6VCXT+b589pRwAWA0BEheqz6eGFuTDEU
pLDDEvz6NVqk
note:Manual add public key type RSA and DSA,authorized-keys2 pbulic key first is ssh-dss and ssh-rsa.
方法一:PuttyKey Generator产生证书方法:
PuttyKey Generator-->Generate,save private key(eg.test.ppk) and public key(test.pub)。把public key复制到远程服务器,并Public Key转换成为Openssh兼容格式
$ssh-keygen -i -f test.pub >> $HOME/.ssh/authorized_keys2
方法二:Linux ssh-keygen 产生证书导入方法:
把PRIVATE KEY发送给Windows客户端,用PuttyKey Generator-->load a existing private key file,输入初始PassPhrase,save private key(eg. test.ppk).
配置Putty:Session输入有公钥服务器的Host Name(or IP)、Save session,Connection-->SSH-->Auth-->Browse找到ppk(test.ppk)。Save session。
选择“Open”即可。
5、SecureCRT Authentication key登录实现;PuttyKey Generator-->Generate,save private key(eg.test.ppk) and public key(test.pub)。把public key复制到远程服务器,并Public Key转换成为Openssh兼容格式
$ssh-keygen -i -f test.pub >> $HOME/.ssh/authorized_keys2
方法二:Linux ssh-keygen 产生证书导入方法:
把PRIVATE KEY发送给Windows客户端,用PuttyKey Generator-->load a existing private key file,输入初始PassPhrase,save private key(eg. test.ppk).
配置Putty:Session输入有公钥服务器的Host Name(or IP)、Save session,Connection-->SSH-->Auth-->Browse找到ppk(test.ppk)。Save session。
选择“Open”即可。
方法一:SecureCRT产生证书方法:
Tools-->Create public key,save private key(eg.test.ppk) and public key(test.pub)。把public key复制到远程服务器,并Public Key转换成为Openssh兼容格式
$ssh-keygen -i -f test.pub >> $HOME/.ssh/authorized_keys2
方法二:Linux ssh-keygen 产生证书导入方法:
建立下面的private key 文件(eg.test.pk)把Linux产生的私钥替换"replace this ......"
Tools-->Create public key,save private key(eg.test.ppk) and public key(test.pub)。把public key复制到远程服务器,并Public Key转换成为Openssh兼容格式
$ssh-keygen -i -f test.pub >> $HOME/.ssh/authorized_keys2
方法二:Linux ssh-keygen 产生证书导入方法:
建立下面的private key 文件(eg.test.pk)把Linux产生的私钥替换"replace this ......"
---- BEGIN VAN DYKE SSH2 PRIVATE KEY ----
Subject: jia
Comment: "123@mypc"
ModBitSize: 1024
replace this ......
---- END VAN DYKE SSH2 PRIVATE KEY ----
配置Session:connection--> Authentication-->primary-->Public key-->Properties...-->Use identity file.添加test.pk文件。OK-->OK--connection即可。
Subject: jia
Comment: "123@mypc"
ModBitSize: 1024
replace this ......
---- END VAN DYKE SSH2 PRIVATE KEY ----
配置Session:connection--> Authentication-->primary-->Public key-->Properties...-->Use identity file.添加test.pk文件。OK-->OK--connection即可。
6、Key登录管理策略
| 角色 | root | app(oracle等) | monitor | test | other |
| public key权限 | 700 | 740 | 740 | 740 | 740 |
| public key所有者 | root | root | root | root | root |
| public key目录 | $HOME/.ssh/ | $HOME/.ssh/ | $HOME/.ssh/ | $HOME/.ssh/ | $HOME/.ssh/ |
| 密码所有者 | 系统管理员 | 系统管理员 | 系统管理员 | 系统管理员 | 系统管理员 |
| 公、私钥个数 | 一个,系统管理员拥有 | 相关人员每人一个每人一个 | 相关人员每人一个每人一个 | 相关人员每人一个每人一个 | 相关人员每人一个每人一个 |
密钥发放、管理登记表
密钥发放人: 发放时间: 下次更换时间: 备案号:
| 申请人 | IP | 登录服务器 | 角色名 | 密钥制作日期 | 备注 |