【转】Ubuntu环境下SSH的安装及使用

原文网址:http://blog.csdn.net/netwalk/article/details/12952051html



SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端能够经过SSH访问远程服务器 。SSH的简介和工做机制可参看上篇文章 SSH简介及工做机制ubuntu

SSH分客户端openssh-client和openssh-server安全

若是你只是想登录别的机器的SSH只须要安装openssh-client(ubuntu有默认安装,若是没有则sudoapt-get install openssh-client),若是要使本机开放SSH服务就须要安装openssh-server。服务器

1、安装客户端

Ubuntu缺省已经安装了ssh client。ssh

sudo apt-get install ssh  或者 sudo apt-get installopenssh-client工具

 ssh-keygen 加密

(按回车设置默认值).net

按缺省生成id_rsa和id_rsa.pub文件,分别是私钥和公钥。rest

说明:若是sudo apt-get insall ssh出错,没法安装可以使用sudo apt-get install openssh-client进行安装。server

 

假定服务器ip为192.168.1.1,ssh服务的端口号为22,服务器上有个用户为root;

用ssh登陆服务器的命令为:

>ssh –p 22 root@192.168.1.1

>输入root用户的密码

 

2、安装服务端

Ubuntu缺省没有安装SSH Server,使用如下命令安装:

sudo apt-get install openssh-server

而后确认sshserver是否启动了:(或用“netstat -tlp”命令)

ps -e|grep ssh

若是只有ssh-agent那ssh-server尚未启动,须要/etc/init.d/ssh start,若是看到sshd那说明ssh-server已经启动了。 

若是没有则能够这样启动:

sudo/etc/init.d/ssh start

  事实上若是没什么特别需求,到这里 OpenSSH Server 就算安装好了。可是进一步设置一下,可让 OpenSSH 登陆时间更短,而且更加安全。这一切都是经过修改 openssh 的配置文件 sshd_config 实现的。

 

3、SSH配置

ssh-server配置文件位于/etc/ssh/sshd_config,在这里能够定义SSH的服务端口,默认端口是22,你能够本身定义成其余端口号,如222。而后重启SSH服务:

 

[html]  view plain copy
 
  1. sudo /etc/init.d/sshresart  
经过修改配置文件/etc/ssh/sshd_config,能够改ssh登陆端口和禁止root登陆。改端口能够防止被端口扫描。

 

 

[html]  view plain copy
 
  1. sudo cp/etc/ssh/sshd_config /etc/ssh/sshd_config.original  
  2. sudochmod a-w /etc/ssh/sshd_config.original  

 

编辑配置文件:

 

[html]  view plain copy
 
  1. gedit /etc/ssh/sshd_config  

找到#Port 22,去掉注释,修改为一个五位的端口:

Port 22333

找到#PermitRootLogin yes,去掉注释,修改成:

PermitRootLogin no

配置完成后重起:

 

[html]  view plain copy
 
  1. sudo/etc/init.d/ssh restart  
[html]  view plain copy
 
  1.   

 

4、SSH服务命令

中止服务:sudo /etc/init.d/ssh stop

启动服务:sudo /etc/init.d/ssh start

重启服务:sudo /etc/init.d/sshresart

断开链接:exit

登陆:sshroot@192.168.0.100 

                 root为192.168.0.100机器上的用户,须要输入密码。

 

5、SSH登陆命令

经常使用格式:ssh [-llogin_name] [-p port] [user@]hostname

更详细的能够用ssh -h查看。

举例

不指定用户:

 

[html]  view plain copy
 
  1. ssh 192.168.0.1  

 

 

指定用户:

 

[html]  view plain copy
 
  1. ssh -l root 192.168.0.1  
  2. ssh root@192.168.0.1   

 

若是修改过ssh登陆端口的能够:

 

[html]  view plain copy
 
  1. ssh -p 22333 192.168.0.111  
  2. ssh -l root -p 22333 216.230.230.105  
  3. ssh -p 22333 root@216.230.230.105  

 

 

6、提升登陆速度

  在远程登陆的时候可能会发现,在输入完用户名后须要等很长一段时间才会提示输入密码。其实这是因为 sshd 须要反查客户端的 dns 信息致使的。能够经过禁用这个特性来大幅提升登陆的速度。首先,打开 sshd_config 文件:

 

[html]  view plain copy
 
  1. sudo nano /etc/ssh/sshd_config  


  找到 GSSAPI options 这一节,将下面两行注释掉:

 

  #GSSAPIAuthentication yes #GSSAPIDelegateCredentials no而后从新启动 ssh 服务便可:

 

[html]  view plain copy
 
  1. sudo /etc/init.d/ssh restart  

 

  再登陆试试,应该很是快了吧

 

 

7、利用 PuTTy 经过证书认证登陆服务器

  SSH 服务中,全部的内容都是加密传输的,安全性基本有保证。可是若是能使用证书认证的话,安全性将会更上一层楼,并且通过必定的设置,还能实现证书认证自动登陆的效果。

  首先修改 sshd_config 文件,开启证书认证选项:

  RSAAuthentication yes PubkeyAuthentication yesAuthorizedKeysFile %h/.ssh/authorized_keys修改完成后从新启动 ssh 服务。

  下一步咱们须要为 SSH 用户创建私钥和公钥。首先要登陆到须要创建密钥的帐户下,这里注意退出 root 用户,须要的话用 su 命令切换到其它用户下。而后运行:

 

[html]  view plain copy
 
  1. ssh-keygen  


  这里,咱们将生成的 key 存放在默认目录下便可。创建的过程当中会提示输入 passphrase,这至关于给证书加个密码,也是提升安全性的措施,这样即便证书不当心被人拷走也不怕了。固然若是这个留空的话,后面便可实现 PuTTy 经过证书认证的自动登陆。

 

  ssh-keygen 命令会生成两个密钥,首先咱们须要将公钥更名留在服务器上:

 

[html]  view plain copy
 
  1. cd ~/.ssh mv id_rsa.pub authorized_keys  


        而后将私钥 id_rsa 从服务器上复制出来,并删除掉服务器上的 id_rsa 文件。

 

  服务器上的设置就作完了,下面的步骤须要在客户端电脑上来作。首先,咱们须要将 id_rsa 文件转化为 PuTTy 支持的格式。这里咱们须要利用 PuTTyGEN 这个工具:

  点击 PuTTyGen 界面中的 Load 按钮,选择 id_rsa 文件,输入 passphrase(若是有的话),而后再点击 Save PrivateKey 按钮,这样 PuTTy 接受的私钥就作好了。

  打开 PuTTy,在 Session 中输入服务器的 IP 地址,在 Connection->SSH->Auth 下点击 Browse 按钮,选择刚才生成好的私钥。而后回到 Connection 选项,在 Auto-login username 中输入证书所属的用户名。回到 Session 选项卡,输入个名字点 Save 保存下这个 Session。点击底部的 Open 应该就能够经过证书认证登陆到服务器了。若是有 passphrase 的话,登陆过程当中会要求输入 passphrase,不然将会直接登陆到服务器上,很是的方便。 

相关文章
相关标签/搜索