学习啦>学习电脑>操作系统>Linux教程>

怎么建立SSH进行远程控制

时间: 春健736 分享

  网络被攻击,很多情况是由于服务器提供了Telnet服务引起的。目前,一种有效代替Telnet服务的有用工具就是SSH服务。SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。学习阿拉小编向大家介绍运行在常用操作系统上的SSH服务器软件包的使用。

  怎么建立SSH进行远程控制

  一、ssh连接的几种验证方式:

  ssh连接是CS模型(客户端-服务器),服务器会对客户端进行验证。验证的方法不少,可以在sshd_config配置文件中设置(Ubuntu是/etc/ssh/sshd_config,mac下是/etc/sshd_config)

  这里仅介绍几种最简单常见的。

  1,最简单的输入账户密码

  直接输入所要登陆的用户的密码。这个是默认的方式。不需要修改配置文件。

  客户端成功建立到服务器的连接后,自己的 .ssh/目录下会记录 服务器的ssh_host_rsa_key.pub(对应的机器的一个rsa加密的公钥)到lknown_hosts文件里。如果服务器之后改变了这个值,客户端需要采取办法修改对应的值,或者删除,否则无法登入。 ssh_host_rsa_key.pub 跟ssh的配置文件在同一个目录下。

  2,rsa加密验证

  建立的连接的两端分别是 客户端(client)和 服务器(server)。

  客户端先使用 ssh-keygen 命令,生成私钥和公钥。(这里就牵扯到了一个经典的RSA加密算法,不多谈),其中私钥客户端自己保存,公钥发给服务器。如此一来,客户端要登录到服务器上实现远程控制的身份验证,则在本身的账户密码之外,多了一层保护。每次登陆,客户端的信息会先经过私钥加密,再传递给服务器,服务器匹配上公钥进行处理后,才能通过。

  注意,配置文件可能也需要对应的修改,比如,笔者的版本是openssh5.9p1,需要取消掉 配置文件对 AuthorizedKeysFil %h/.ssh/authorized_keys 这一句的注释。只要删掉那个'#',就能执行rsa验证。如此情况下,就不需要输入密码验证了。

  3,passphrase口令验证,增加对rsa private的保护。

  这个我自己还没怎么看明白= =。参见github中的解释

  二、实施细节

  我把我的Mac OS X作为客户端,小黑的Ubuntu作为服务器端。使用第二种即rsa方法远程连接。

  首先,安装好ssh

  mac下自带的有,ubuntu下直接sudo apt-get install ssh就好了。(其实是开源的openssh,unix,linux平台下都可。ssh本身被商业化了,据说功能更多。)

  其次,在客户端生成私钥公钥,并传递给服务器

  在mac上用ssh-keygen生成密钥对。shell指令如下,然后跟着他的提示来好了。passphrase什么都不输入就好了,果断回避掉先。

  结果是在用户根目录里的.ssh目录下生成的 id_rsa(私钥)和id_rsa.pub(公钥)。

  然后,传送id_rsa.pub到Ubuntu上,命名为authorized_keys。这个过程中默认使用了账号密码的验证方式。

  不要忘了修改服务器的配置文件,以支持rsa验证方式。

  找到

  这句话,去掉前面的'#'号。(如果没有找到这句话,则自己加上

  即可,位置无关)

  最后,登陆

  mac下输入 ssh xxxx@hostAddress

  由于之前已经完成了一次文件传输,已经在客户端的.ssh/know_hosts中记录下了服务器的key,又采用了rsa的验证方式,无需输入密码,即可建立链接。

  意外

  如果出现在登录时,出现如下问题:

  Agent admitted failure to sign using the key

  使用 ssh-add 指令将私钥 加进来 (根据个人的密匙命名不同更改 id_rsa)

  # ssh-add ~/.ssh/id_rsa

  试用

  用scp命令试用了下。发现传输速度最高也就1.1M。

  网上有说法是开启-C选项后速度会翻一倍左右,但我的测试结果仍然是最多1.1M。也使用了rsync命令,同样是1.1M。

  或许是路由器的限速吧= =。以后再查了。

看过“ 怎么建立SSH进行远程控制 ”的人还看了:

1.解决路由器安全只需简单六步

2.网件无线路由器wac730基本设置

3.路由器安全管理有哪些方法

645558