Chinaunix首页 | 论坛 | 博客
  • 博客访问: 565388
  • 博文数量: 89
  • 博客积分: 2383
  • 博客等级: 大尉
  • 技术积分: 970
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 23:02
个人简介

Scientific Linux是重新编译的Red Hat Enterprise Linux,由费米国家加速器实验室、欧洲核研究组织以及世界各地的大学和实验室共同开发。它旨在与Red Hat Enterprise Linux完全兼容,也强调自主方便的定制,用户可以根据自己的需求做相应修改,可以使用脚本或者Anaconda给自己定制最小化的安装模式。

文章分类

全部博文(89)

文章存档

2017年(1)

2016年(2)

2013年(2)

2012年(2)

2011年(16)

2010年(13)

2009年(46)

2008年(7)

我的朋友

分类: BSD

2011-05-31 19:37:25

 启用密钥ssh登陆服务器:
 

首先得生成一对密钥,一把私有密钥和一把公用密钥,公用密钥用于对消息进行加密,只有拥有私有密钥的人才能对该消息进行解密。把公钥放到我们要远程登录的主机(remote)上(~/.ssh/authorized_keys),专用密钥放置到本地机(local)或是U盘。

 

认证过程中,romote接收到local的登录请求后,romotesshd 会生成一个随机数,并用我们先前拷贝过去的公用密钥对这个随机数进行加密,然后,sshd把加密了的随机数发回给正在local上运行的ssh程序,然后是local计算机对该随机数的解密,再发回给romote,通过后,romote则允许local登录了。

 

SSHSecureShellClient-3.2.9为例

首先我们创建属于你自己的公钥和私钥:

1SSH Secure ShellEdit菜单àSetting菜单,找到Keys,然后Generate New..开始生成新密钥;

2)下一步(全部默认即可),选择DSA吧(RSA也可以,但RSADSA差不多,DSA耗资源少点,其实这点资源消耗可以忽略不计);

3)下一步,File,取个文件名:zx-ssh,别的可以不填直接点“完成”,Passphrase写了则每次连接时需要输入,我喜欢连密码都不输;为了实现自动登录,passphrase为空,但这样不安全,还是设置一个passphrase吧,如果你的ssh secure shell界面不关闭,输入一是passphrase就可以一直好用的,有passphrase可以防止私钥被人盗用;

4)找到密钥存放的目录:我是windows7,在C:\Users\ZX\AppData\Roaming\SSH\UserKeys,有2个文件:zx-ssh(私钥,与公钥一起存放到本地或复制到U盘,在没有使用该过密钥的机器上要访问服务器,则需要导入密钥:SSH Secure ShellEdit菜单àSetting菜单,找到Keys,然后Import导入,往往在Import是,要求你输入的是公钥文件名,没关系,导入公钥则私钥也导入成功,在配置文件夹中会自动生成2个文件,就是导入的公钥和私钥;zx-ssh.pub(公钥,上传到服务器用户主目录中,等待转换格式,需要转换为openssh格式才可以被服务器识别);到此为止,windows这边已经准备好了。

5)服务器端(我以freebsd为例),修改配置文件:vi/etc/ssh/sshd-config

启用ChallengeResponseAuthentication no #启用此项才可以真正取消密码验证

启用UsePAM yes

6)将生产的公钥(zx-ssh.pub),上传到服务器用户主目录(自己想办法传),复制到用户主目录下的.ssh目录中,然后进行格式转换(转换为openssl格式):

cd /usr/home/用户主目录/.ssh/

  ssh-keygen -X -f zx-ssh.pub>>.ssh/authorized_keys #转换格式openss格式,并将公钥导入到authorized_keys文件中

  chmod 0640 authorized_keys#设置权限,使该文件仅允许属主读写

rm zx-ssh.pub#删除上传的公钥,要不然留住也没用

这里要注意一个问题,就是这个linux主机如果有多个公钥,要注意每个公钥后面需要有个回车或是换行,不能将多个公钥直接罗列在一行。

应该重新检查一下你的authorized_keys的权限(640)。也可能要检查.ssh目录的权限,.ssh目录应该对“组用户”(group)和“其它用户”(other)没有写的权限。运行下面的命令来取消“组用户”(group)和“其它用户”(other)对于.ssh目录的写权限(740)chmod go-w ~/.ssh(也可以chmod 740 ~/.ssh,一样的)

 

搞定了!在我的/etc/ssh/sshd-config中共4条:

PermitRootLogin yes

PasswordAuthentication no

ChallengeResponseAuthentication no

UsePAM yes

Subsystemsftp/usr/libexec/sftp-server

 

SecureCRT_SFX 6.61(目前网上最新版)为例,首先是创建自己的公钥和私钥:

1secureCRT软件的获得,securecrt securesfx一个是ssh一个是scp,这两个软件是联动的,在其主页款软件(在crackteam.ws网站上可以找到注册程序,你在网上也可以很好找到汉化版,这样不好呀!强烈建议购买正版软件)。

2)首先是创建自己的公钥和私钥:

运行SecureCRT工具à创建公钥à采用DSA类型àPassphrase可以不写,但我愿意每次登陆时输入这个,因为有这个Passphrase则私钥被人偷走也不怕àKey length 我改成2048(长点安全点)à注意存放目录和格式,请选择OpenSSH Key format格式,这样可以兼容大多数的linuxfreebsd服务器,记住存放目录à完成

3)这样在存储目录找到2个文件,以我的为例:ZX_Identity(私钥),ZX_Identity.pub(公钥),私钥自己留好,或复制到U盘,以备急需,公钥直接传输到你的Unixlinuxfreebsd服务器上的~/.ssh目录(用户主目录下的.ssh目录),并执行cat ZX_Identity.pub >> ~/.ssh/authorized_keys将公钥密文追加到认证文件中,这里要注意一个问题,就是同一个用户名(假设是root),现在要设置多个公钥,那么在利用cat追加某个公钥之前,一定要先vi ~/.ssh/authorized_keys看一下原有公钥后面是否有回车,要确保新追加进来的公钥没有直接连在其他公钥的行尾,新密钥一定要在新的一行,否则,这些公钥没有分开,就不好用了。注意.ssh目录的权限:chmod 740 ~/.ssh; chmod 640 ~/.ssh/authorized_keys;

4linux/freebsdssh服务器端密钥登录配置:

我以freebsd为例),修改/etc/ssh/sshd-config,

启用ChallengeResponseAuthentication no #启用此项才可以真正取消密码验证

启用UsePAM yes

重启sshd服务:/etc/rc.d/sshd restart

一切都OK了!

 

如果更换电脑,需要导入私钥,很简单,在创建连接的时候,选择SSH2PblicKey,在其Properties中导入即可。

 

阅读(16147) | 评论(1) | 转发(1) |
给主人留下些什么吧!~~

zkyy662011-06-02 11:10:09

学习了