用过几个版本的 FreeBSD,4.11、5.4、6.0、6.1 和 6.2,发现登录方式改了好几次。
都是用 SecureCRT 进行 ssh 登录,有的版本每次都要输入密码,有的就不用。
只知道随系统一起的 ssh 版本不同,但一直没弄明白怎么回事,就是觉得每次输入密码太麻烦了。
查了几次 Google 和 百度,也没太看明白。
今天决心好好查查,并实践一下。
刚装了 FreeBSD 6.2。
sshd 连接注意:
1 默认启用公钥认证及密码认证(Secure Shell Client 登录不了,用 SecureCRT 5.0 没问题)
2 不允许 root 登录(必须先建立一个用户,而且是 wheel 组的,登录后再 su 到 root)
在线更改 SSHD 默认端口:
vi /etc/ssh/sshd_config
/etc/rc.d/sshd restart
做这一步的目的,就是把默认的 22 端口改成其他的,可以减少被攻击的可能性。
使用 SSH PUBLIC KEY
假设用户名是 leakon
方法一(由 FreeBSD 生成密钥对)
1 在FreeBSD中执行
ssh-keygen -t dsa
可得到
/home/leakon/.ssh/id_dsa
/home/leakon/.ssh/id_dsa.pub
2 可以用 WinSCP 下载这个两个文件到本地,保存到
C:\Documents and Settings\leakon\Application Data\VanDyke\
这是 SecureCRT 在 Windows 的 leakon 用户的程序数据文件夹中生成的目录
3 打开会话选项,在 分类 中选择 SSH2,在右边的 身份验证 中选择 公钥(PublicKey),然后点击旁边的 属性(Properites),选择 使用会话公钥设置(Use session public key setting),在 使用身份文件(Use identify file) 的输入框中,选择刚才下载回来的 id_dsa,注意,id_dsa 和 id_dsa.pub 要保存在一起(两个文件取名任意,但必须符合 somekey 和 somekey.pub)
4 按照 /etc/ssh/sshd_config 中指定的公钥文件名 AuthorizedKeysFile .ssh/authorized_keys,修改本地公钥文件名,在FreeBSD中执行
cd /home/leakon/.ssh/
mv id_dsa.pub authorized_keys
至此,方法一大功告成,重新用 SecureCRT 连接一下试试,直接就登录好了吧!
方法二(由SecureCRT生成密钥对)
1 设置好用户名后,用刚才方法一的第 3 步,打开那个对话框,这个时候,要单击 创建身份文件(Create Identify File),然后下一步,选择 DSA,生成 Identity 和 Identity.pub 两个文件
2 把 Identity.pub 上传到 FreeBSD 的 /home/leakon/.ssh 目录下
3 在 FreeBSD 中执行
ssh-keygen -X -f Identity.pub > authorized_keys
取消sshd密码认证方式
vi /etc/ssh/sshd_config
PasswordAuthentication no
/etc/rc.d/sshd restart
1 comment