`
Lewis·Lee
  • 浏览: 65219 次
  • 性别: Icon_minigender_1
  • 来自: 台州
社区版块
存档分类
最新评论

在 Windows XP 上使用 OpenSSH 和 PuTTY 的公钥认证远程管理 Unubtu Server 10.04 LTS——上

阅读更多

注意 :代码中的 # 只表示注释作用,该内容不能输入到命令行窗口中

 

      远程管理 Ubuntu,可以通过很多方式,这里只介绍 SSH。通过 SSH 可以远程登录到服务器上,让你觉得好像就在服务器面前工作一样。我们使用的 SSH 是 OpenSSH ,它是由两个小组开发的,其中 OpenBSD 为该项目做了杰出贡献。通过 OpenSSH,我们不仅可以远程使用命令行,还可以远程运行 X Window 图像程序,安全地传输文件。我们甚至还可以用 OpenSSH 的端口映射功能为其它协议做管道,来通过防火墙或者不可信任的网络。

      OpenSSH 的安全性非常高,如果你目前仍在使用 telnet、rlogin、ftp 这些非常不安全的工具(它们传输密码时使用明文,导致密码很容易被窃取),希望你能尽快转移到 SSH 上来,已减少网络安全隐患。

 

关于公钥认证

为什么要用公钥认证

      如果你的 SSH 服务器是放在 Internet 上的,那么 Hiweed 强烈建议你不要使用密码登录。因为总有些像搞破坏的人,使用各种各样的方法,希望能够得到你的用户名和密码,然后做一些乱七八糟的事情。

      请你千万不要不以为然。你可以查看系统认证日志文件,该文件位于/var/log/auth.log 。使用 tail 查看文件的最后几行(-n 的默认值为 10,即十行)。使用 -f 开关,可以输出该文件新增的数据。具体参数配置可以使用 tail --help 命令。

$ cd /var/log
$ tail -f auth.log

其轮转(rotate)后的日志文件为 /var/log/auth.log.0 等。使用 grep 过滤出 SSH 的认证信息:

$ grep failed auth.log.0

       你很有可能会看到非常多的认证失败信息:

Jul  1 21:18:44 lee sshd[2273]: error: key_read: key_from_blob AAAAB3NzaC1yc2EAAAABJQAAAIEAql2+PY8ZDVK+RVLUCzteXHyz8qFoC/fNlUOw fjRVUuVoytgjpqyHWM7vSxkBO90B6f8mPL8jxhWBGqXMv2hQKsJrHDf4m9ILIrDN/pGt/HnZ/JQZkLOnxddWdXCLbDMESrU8D3a9SMSkEbmL5RgJ+NIv6DbrlTElT7lm ESAM5Ns= lee's key\n failed
Jul  1 21:26:13 lee sshd[2560]: error: key_read: uudecode AAAAB3NzaC1yc2EAAAABJQAAAIEAql2+PY8ZDVK+RVLUCzteXHyz8qFoC/fNlUOwfjRVUuVoytgjpqyHWM7vSxkBO90B6f8mPL8jxhWBGqXMv2hQKsJrHDf4m9ILIrDN/pGt/HnZ/JQZkLOnxddWdXCLbDMESrU8D3a9SMSkEbmL5RgJ+NIv6DbrlTElT7lmESAM5Ns== lee's key\n failed

     尤其是那些在时间上很连续的登录尝试,一看就知道是暴力破解。

     既然密码登录方式这么不安全,那么使用什么方式登录呢?使用公钥

公钥认证是怎么工作的

     “公钥”是从 Public Key 翻译过来的,和“私钥”(Private Key)相对应。公钥和私钥都是一个很长的字符串(一个非常大的随机数)。公钥放在服务器上,私钥放在你的客户机上;当你从客户机连接服务器时,如果你的 私钥能够和公钥对上号,就可以通过认证。

     简单地说,公钥就好像一把锁,把服务器锁住;私钥就好像一把钥匙,只有钥匙对了,才能打开那把锁。没有钥匙,别指望打开它。

       因为大多数 SSH 程序保持私钥时都使用密码加密保护。所以,即便你的电脑丢失,私钥被人拿到,你也有足够的时间来创建新的公钥和私钥,并将服务器上的旧公钥替换掉。

SSH 的安装

       Ubuntu 提供了一个 meta 软件包,名为 ssh。它依赖 openssh-server 和 openssh-client。使用 apt-cache 显示软件包的依赖关系,从而验证我们刚才所说的是否正确:

$ apt-cache show ssh
...
Depends: openssh-client, openssh-server
... 

      如果你的机器上既需要 SSH Server 又需要 SSH Client,可以直接安装 ssh 软件包;否则,就可以分开来安装。

安装 SSH 服务器和客户端

      如果你的服务器上只需用 SSH Server的话,则安装 openssh-server 软件包即可。使用 dpkg -l 查看软件包 openssh-server 是否已安装。如没,则输入安装命令。

# 确认 openssh-server 是否已安装
$ dpkg -l openssh-server
# 如没,则输入安装命令
$ sudo apt-get install openssh-server

      这样,OpenSSH 服务器就安装好了。提供 SSH 服务的程序叫做 sshd,其配置文件是/etc/ssh/sshd_config 。在默认情况下,SSH 服务跑在 TCP 的22端口。为了安全起见,你可以把这个端口号改成别的,比如2323。使用 sudo nano 修改端口号:

$ sudo nano /etc/ssh/sshd_config
# 将 Port 22 改为 Port 2323,然后按 Ctrl+o,最后按 Ctrl+x。这样就修改完成
# 重新启动系统才能生效
$ sudo reboot

      如果是在客户端上,我们只需要安装 SSH Client,那么安装 openssh-client 软件包即可:

$ sudo apt-get install openssh-client

      这样,OpenSSH 客户端就安装好了。它携带了一些其他 SSH 工具,比如 ssh-keygen 可以用来生成公钥/私钥对,scp 可以用来通过 SSH 远程复制文件,sftp 可以实现安全 FTP 传输,等等。

测试

      安装好后,马上就可以在服务器上测试一下:

$ ssh localhost -p 2323

      正常情况下,SSH 会邀请你输入密码,通过认证后,便登录成功,你就进入了基于 SSH 新的命令行了。要退出也很简单,使用 Ctrl+d 或 exit 命令即可。

 

SSH 配置

      首先,我们需要生成一对公钥/私钥。

       在 Linux 客户机上,运行 ssh-keygen 命令(请确认你安装了 openssh-client 软件包):

      上面命令行输入的 rsa 代表 rsa for protocol version 2。有关参数选项的含义,建议参考 OpenSSH 用户手册——ssk-keygen

      这样,密钥对就生成了。公钥是~/.ssh/id_rsa.pub,私钥是~/.ssh/id_rsa。

将公钥复制到服务器

      生成公钥后,我们还需要将它复制到服务器上。

      你可以使用 scp 进行远程 copy,但是 OpenSSH 提供了一个更好的工具叫做 ssh-copy-id QuickTip: Make life easier with ssh-copy-id ), 专门用于密钥的复制 。它可以更安全地帮助我们上传公钥,并自动把公钥写入 SSH 服务器上的 ~/.ssh/authorized_keys (如果~/.ssh目录不存在的话,它会自动创建)。

$ ssh-copy-id -i .ssh/id_rsa.pub lewis@192.168.1.199

      如果想查 authorized_keys 文件的获取权限是不是 -wr------ ?可以使用 ls -l 命令查看文件的权限:

$ cd .ssh
$ ls -l
 

SSH 登录测试

      复制后,我们来测试一下,看看使用刚才创建的密钥对能不能登录。

  1. 从 Linux 登录

      从 Linux 客户机上登录 SSH 服务器很简单:

$ ssh lewis@192.168.1.199

      输入密钥密码后,应该就可以登录成功了。如果你在创建 key 时没有输入密码,则登录时也不需要使用密码,直接就能登录成功(可以用在 shell 脚本中实现自动维护任务)。

      如果你的 .ssh 目录下有多个 key,则可以使用 -i 来指定 key 文件:

$ ssh -i .ssh/id_rsa lewis@192.168.1.199

   2. 用 PuTTY 登录

      在 Windows 上用 PuTTY 登录的话,我们的私钥必须用 PuTTYgen 转换一下格式。在 PuTTYgen 的 File 菜单上,选择“Load private key” 或 直接单击“load”按钮(如图 20.1 所示)。

图 20.1  在 PuTTYgen 上加载私钥

       如果你的私钥有密码,PuTTYgen 会要求你输入密码,如图 20.2 所示。

图 20.2 输入私钥的密码

       输入正确的密码后,会显示导入成功。并提示说,“Save private key”将私钥保存为 PuTTY 自己的 key 格式,如图 20.3 所示。

图 20.3 私钥导入成功

      现在,在 PuTTYgen 的界面上,你可以修改 key 的备注(Key comment),然后单击“Save private key”按钮,将私钥保存(如图 20.4 所示)。

图 20.4 修改备注并保存

  • Run the Putty client (PuTTY.exe) to specify the saved private key and auto-login username before initiating connection to lewis.

      现在,在 PuTTY 中的“Connection -> SSH -> Auth”配置界面中,指定 key 的路径即可,如图 20.5 所示。

图 20.5 在 PuTTY 中加载私钥

Graph 20.6 Specify the login user ID

SSH服务器配置

      在 SSH 服务器上,我们要禁止使用密码登录,仅允许使用密钥登录。

      先备份/etc/ssh/sshd_config,然后修改它:

$ sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config-backup
$ sudo nano /etc/ssh/sshd_config

     找到下面几行内容:

PermitRootLogin yes
#PasswordAuthentication yes
UsePAM yes

     将 yes 全部改为 no:

# 不允许使用 root 账号登录系统
PermitRootLogin no
# 密码登录权限失效
PasswordAuthentication no
UsePAM no

     文件保存后,重新启动 SSH 服务:

$ sudo /etc/init.d/ssh restart

     好,SSH 服务器的配置就完成了。现在开始,SSH 服务器将不再接受密码登录方式,只有使用私钥 key 才能登录。

 

下一篇:使用 PuTTYgen 在 Windows XP 上生成密钥对以及 SSH 的远程复制文件功能——中

  • 大小: 7.4 KB
  • 大小: 17.6 KB
  • 大小: 5.8 KB
  • 大小: 8.8 KB
  • 大小: 24.9 KB
  • 大小: 22.8 KB
  • 大小: 18 KB
分享到:
评论

相关推荐

    Ubuntu离线安装openssh-server安装包

    Ubuntu20.04和Ubuntu16.04等其他Ubuntu离线安装openssh-server 安装步骤: sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.7_amd64.deb sudo dpkg -i openssh-client_8.4p1-6ubuntu1_amd64.deb sudo dpkg -i openssh-...

    OpenSSH + Puttygen + Putty

    这是全部OpenSSH的RPM包跟SSH终端Putty

    openssh-server -Ubuntu18.04远程服务离线安装包

    sudo dpkg -i openssh-sftp-server_1%3a7.6p1-4ubuntu0.6_amd64.deb sudo dpkg -i openssh-server_1%3a7.6p1-4ubuntu0.6_amd64.deb sudo dpkg -i ssh-import-id_5.7-0ubuntu1.1_all.deb 修改 /etc/ssh/sshd_config...

    ssh在windows上的使用(openssh)

    openssh。个人觉得在百度google上不容易找得到下载链接或者下载很慢,就转存到这里来。...OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。

    openssh-server离线安装包

    openssh-server离线安装包 三个.deb文件

    setupssh-7.3p1-2-cygwin252-Windows XP-2003.exe

    OpenSSH for windowsxp和Windows2003下载 The Cygwin team has updated the cygwin package and deprecated support for various Windows versions over time. The below table shows the Windows version with the ...

    SSH Mastery_ OpenSSH, PuTTY, Tunnels and Keys.epub

    SSH Mastery_ OpenSSH, PuTTY, Tunnels and Keys. 12-Tilted Windmill Press (2018).epub

    Ubuntu20.04离线安装openssh-server.rar

    Ubuntu20.04离线安装openssh-server 安装步骤: sudo dpkg -i libssl1.0.0_1.0.2n-1ubuntu5.7_amd64.deb sudo dpkg -i openssh-client_8.4p1-6ubuntu1_amd64.deb sudo dpkg -i openssh-sftp-server_8.4p1-6ubuntu1...

    OpenSSH For Windows 绿色便携版 Portable 3.8.1p1

    OpenSSH 3.8.1p1 Portable 绿色版 For Windows --- openssh的绿化版本 初次使用: 在bin目录中运行 mkgroup -l >> ..\etc\group 这是加入本地组的命令。 'mkgroup -d >> ..\etc\group 这是加入域组的命令,可不执行...

    Ubuntu下openssh-server手工安装 手把手教你安装

    此资源包含了openssh—server的三个安装包,以及对应的安装说明,内容详细正确,手把手教你如何在无网络情况下安装openssh—server。

    OpenEuler22.03 LTS 升级openssh9.6p1解决openssh中高危漏洞(亲测有效)

    OpenEuler22.03 LTS 升级openssh9.6p1解决openssh中高危漏洞(亲测有效)

    openssh-server.deb

    openssh服务端 执行 dpkg -i openssh-server_1%3a5.5p1-4ubuntu6_i386.deb安装 此安装软件为32位 64位系统安装不了

    OpenSSH_For_Windows_4.3p2

    This OpenSSH for Windows package provides full SSH/SCP/SFTP support. The SSH terminal provides the familiar Windows Command prompt, and retains Unix/Cygwin-style paths for SCP and SFTP. Windows ...

    Openssh工具远程管理

    Openssh工具远程管理, Openssh工具远程管理的简介

    openssh openssh-client openssh-server

    openssh-4.3p2-82.el5.src.rpm openssh-clients-4.3p2-82.el5.i386.rpm openssh-server-4.3p2-82.el5.i386.rpm xinetd-2.3.14-10.el5.i386.rpm

    openssh-server-9.4p1-1.el7.x86-64.rpm

    centos7 openssh-server-9.4

    openssh9.4p1 for openeuler2203LTS

    openssh-debugsource-9.4p1-oe2203.x86_64.rpm openssh-server-9.4p1-oe2203.x86_64.rpm openssh-clients-9.4p1-oe2203.x86_64.rpm openssh-9.4p1-oe2203.x86_64.rpm openssh-debuginfo-9.4p1-oe2203.x86_64.rpm

    Openssh for windows64 v9.2.0.0免费下载

    用于64位windows实现ssh连接的工具,截至2023年4月17日的最新版本v9.2.0.0。 免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载,免费下载...

    openssh的离线安装包.rar

    此资源为openssh 7.2的离线安装包,包含有详细的安装步骤,超级好用。 安装的详细步骤命令如下: sudo dpkg -i openssh-client_7.2p2-4_amd64.deb sudo dpkg -i openssh-sftp-server_7.2p2-4_amd64.deb sudo dpkg...

    windows下ssh工具openssh

    “openssh for windows”这个项目是一个用cygwin包装了最小的openssh服务端和客户端的工具,基本的ssh、scp、sftp、ssh-agent、ssh-keyscan 命令都具备,安装程序会自动注册Path目录和注册表,现在就能直接在命令行...

Global site tag (gtag.js) - Google Analytics