设置SSH服务器只采用密钥认证

1.       windows下的ssh客户端设置

1.1 设置密钥登录

       这里以SSH secure shell 3.2.9为例。  首先确保服务器ssh服务已启动,用户能够正常登录,然后配置客户端,过程如下:

       (1) 运行 SSH Secure Shell 工具中的“Secure Shell Client ”,选择菜单中“Edit”-> “Setting”,在打开的窗口左侧依次选择“Global Settings”->“User Authentication”->“Keys”,然后看到如下画面。注:第一次使用时,Private Key file是空的。

设置SSH服务器只采用密钥认证 - 云溪堂主人 - 云溪小屋

       (2) 点击“Generate New”,在打开的窗口中点击“Next”弹出生成密钥的画面,选择 “RSA” “2048”,然后点击“Next”,稍等一会,会计算一个密钥。

       (3) 看到如下图,参照图片中的内容进行填写,比如key File填写为castor_key,这个无所谓,不要跟其它key重复就好了。

设置SSH服务器只采用密钥认证 - 云溪堂主人 - 云溪小屋

Passphrase中填写一个密码,这个是保护本地私有密钥的密码,也就是说,即使有人盗用了你的计算机,没有这个密码,也仍然不能使用你的密钥。注意,这个不是服务器上用户密码。点击下一步,生成密钥,位置在C:\Documents and Settings\”用户名”\Application Data\SSH\UserKeys目录下。这个目录应该备份出来,拷贝到U盘或者其它设备上,以便以后重装系统仍然可以采用。

       (4) 密钥生成后,应该把公钥上传到服务器。有两种方式,第一种方法直接选择菜单中“Edit”-> “Setting”,在打开的窗口左侧依次选择“Global Settings”->“User Authentication”->“Keys”,然后点击“Upload”,出现如下画面。此时,SSH Client应该处于登录状态。

设置SSH服务器只采用密钥认证 - 云溪堂主人 - 云溪小屋

注意:第二项应该改为.ssh,而非缺省的.ssh2,否则上传会失败

第二种方法是使用上传工具,手动把公钥文件,比如刚刚生成的castor_key.pub上传到需要登录的用户HOME目录下的.ssh目录中。

(5) 到服务器上设置。

 接着要做一些手工的操作,在命令行界面里,输入如下命令: (左脚注意前面的$符号不是命令,只是个提示符)

  $ cd .ssh/

  $ ls -l

  会至少看到你刚才生成的 .pub 公钥文件和一个 authorization 认证配置文件。如果没有你刚才起的名子的文件,那就有问题,检查上面的过程。

  接着做下面的命令,假设我生成的是castor_key.pub

  $ ssh-keygen -i -f castor_key.pub >> authorized_keys

  然后,删除刚才生成的文件:

  $ rm -rf castor_key.pub

  $ rm -rf authorization

2.       Linux下的设置

2.1   SSH版本1设置

ssh-keygen -t rsa1

生成密钥过程中,会提示私钥的保护口令,可以为直接键入回车,即不需要保护,以后就可以不需要任何密码登录服务器。

将生成私钥文件identity和公钥文件identity.pub。将identity.pub上传到服务器要登录的用户HOME目录下的.ssh目录中,并将identity.pub的内容添加到authorized_keys中,比如:

cat identity.pub >> authorized_keys

2.2   SSH版本2设置

ssh-keygen -t rsa

生成密钥过程中,会提示私钥的保护口令,可以为直接键入回车,即不需要保护,以后就可以不需要任何密码登录服务器。

将生成私钥文件id_rsa和公钥文件id_rsa.pub。将id_rsa.pub上传到服务器要登录的用户HOME目录下的.ssh目录中,并将id_rsa.pub的内容添加到authorized_keys中,比如:

cat id_rsa.pub >> authorized_keys

 

2.3   总结

为了兼容服务器的版本,最好生成rsa1rsa2两个版本的公钥,分别把identity.pubid_rsa.pub都加入到服务器的authorized_keys文件中。如果仅按照默认方式生成密钥,实际上就是SSH 版本2的方式,将生成id_rsaid_rsa.pub。直接使用ssh命令登录有些服务器时会失败,必须加选项-2,比如ssh -2 cdev02.ihep.ac.cn

设置服务器只允许密钥

       编辑/etc/ssh/sshd_config,把PasswordAuthentication yes修改为PasswordAuthentication no,然后重新启动sshd服务。

 

结束语:目前还没有找到如何把windows下的SSH Secure shell生成的密钥导入到Linux下的用户使用,这样一个用户就仅需要一个密钥,而不是在LinuxWindows下分别生成一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值