SSH公钥加密的方式使得对方即使截取了帐号密码,在没有公钥私钥的情况下,依然无法远程ssh登录系统,这样就大大加强了远程登录的安全性。
1. 编辑配置文件 /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys (这就是后面要改名字的原因)
PasswordAuthentication no (关闭常规的密码登录方式,这种方式的明文的密码传输)
2. 配置公钥加密链接linux
下一步,输入需要linux账户ila的密码,注释栏写上一点提示性内容
下一步,密钥长度,默认即可,2048也行,越长月安全
下一步,生成密钥,等待,即使2048也花不了多长时间,1分钟不到(CPU T2400)
完成后下一步,这里保存了私钥地址和文件名。建议将这个名字改一改,因为生成多个用户的密钥的时候方便识别,而且放在U盘里随身携带的时候也好认识,例如改成pubkey_to_linux_for_ila。
另一个需要注意的地方就是勾选“OpenSSH密钥格式”。因为Linux默认使用的OpenSSH作为SSH客户端和服务器端,他们使用的密钥格式不一致,不转换的话无法使用。
在某些老板的SecureCRT中没有这个选项,没关系,在Linux系统中也可以转换。
如此完成即可。
3. 将公钥(ssh_to_linux_for_ila.pub)拷贝到该用户宿主目录的.ssh目录下。如果没有这个目录就手动创建一个,注意是隐藏目录,然后改名字,改为authorized_keys。这个名字是对应配置文件里面的那个参数。
前面提到创建过程中如果没有格式转换的选项,在linux系统下有转换的命令:
ssh-keygen -i -f ssh_to_linux_for_ila.pub >>authorized_keys
chmod 600 authorized_keys (可选)
4. 如此这般就差不多了。记得一定要重启ssh服务
service sshd restart 或者/etc/rc.d/init.d/sshd restart
这样就OK了。
如果需要在别的电脑上进行登录,那么一定要携带好了公钥和私钥,否则是ssh是无法登录的。这就是安全性的体现,即使你截取了密码也无法登录,除非你在服务器上直接登录。
附:SecureCRT默认的配置使得在linux后使用setup,ntsysv,menuconfig等工具时不能正确显示,其实只要配置两个地方就可以了。第一,打开会话选项,将仿真终端改为linux并勾选ANSI色彩;第二,在外观选项里将字符编码选为UTF-8。
附上一些SFTP的笔记。
SFTP是SSH自带的另一个功能,可以安全的上传下载文件。我们使用SecureCRT的时候就有这个功能。当SFTP的连接已经建立,我们可以使用一些基本的bash命令。这些命令如果没有加l(或者L)的话,表示在远端系统上执行,如果加了l表示在本地执行。如下图所示:
1. 上传与下载 put get
put 本地目录或文件 远程目录
put 本地目录或文件 (放在当前所处的远程目录)
get 远程目录或文件 本地目录
get 远程目录或文件 (放在当前所处的本地目录)