ubuntu下进行ssh

 

一, 介绍

        SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是眼下较可靠。专为远程登录会话和其它网络服务提供安全性的协议。

利用 SSH 协议能够有效防止远程管理过程中的信息泄露问题。

SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其它操作平台。SSH在正确使用时可弥补网络中的漏洞。SSHclient适用于多种平台。差点儿全部UNIX平台—包含HP-UX、Linux、AIX、Solaris、Digital
UNIX、Irix,以及其它平台,都可执行SSH。

   SSH分为client和服务端。
服务端是一个守护进程,通常是sshd进程,在后台执行并响应来自client的请求。

提供了对远程请求的处理,一般包含公共密钥认证、密钥交换、对称密钥加密和非安全连接。

client通常是ssh进程,另外还包含scp、slogin、sftp等其它进程。
 
工作机制:
1. client发送一个连接请求到远程服务端
2. 服务端检查申请的包和IP地址,再发生密钥给SSHclient;
3. client再将密钥发回服务端,自此建立连接。

从client来看,SSH提供两种级别的安全验证。

  第一种级别(基于口令的安全验证)
   仅仅要你知道自己帐号和口令,就能够登录到远程主机。全部传输的数据都会被加密,可是不能保证你正在连接的server就是你想连接的server。可能会有别的server在冒充真正的server,也就是受到“中间人”这样的方式的攻击。
  另外一种级别(基于密匙的安全验证)
    须要依靠密匙,也就是你必须为自己创建一对密匙。并把公用密匙放在须要訪问的server上。

假设你要连接到SSHserver上,client软件就会向server发出请求。请求用你的密匙进行安全验证。

server收到请求之后,先在该server上你的主文件夹下寻找你的公用密匙。然后把它和你发送过来的公用密匙进行比較。假设两个密匙一致,server就用公用密匙加密“质询”(challenge)并把它发送给client软件。

client软件收到“质询”之后就能够用你的私人密匙解密再把它发送给server。

用这样的方式。你必须知道自己密匙的口令。可是,与第一种级别相比,另外一种级别不须要在网络上传送口令。

另外一种级别不仅加密全部传送的数据,并且“中间人”这样的攻击方式也是不可能的(由于他没有你的私人密匙)。可是整个登录的过程可能须要10秒。

-----------------------------------------------------------------------------------------------------

二,  ubuntu开启SSH服务

1 安装

 SSH分clientopenssh-client和openssh-server
 假设仅仅是想登陆别的机器,SSH仅仅须要安装openssh-client(ubuntu有默认安装。假设没有则sudo apt-get install openssh-client)。假设要使本机开放SSH服务就须要安装openssh-server

 

sudo apt-get install openssh-server

(查看返回的结果。假设没有出错,则用putty、SecureCRT、SSH Secure Shell Client等SSH client软件,输入您server的 IP 地址。

假设一切正常的话,等一会儿就能够连接上了。

并且使用现有的用户名和password应该就能够登录了

2  查看SSHclient版本号

    有的时候须要确认一下SSHclient及其对应的版本号号。使用ssh -V命令能够得到版本号号。须要注意的是,Linux一般自带的是OpenSSH: 以下的样例即表明该系统正在使用OpenSSH:

 $ ssh -V
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2, OpenSSL 1.0.1f 6 Jan 2014

3 确认sshserver是否启动:

    

ps -e |grep ssh

 或
  

 netstat -tlp

 假设看到sshd那说明ssh-server已经启动了。

 假设仅仅有ssh-agent那ssh-server还没有启动.

3 启动SSH

 若没有启动则启动:sudo /etc/init.d/ssh start

 ssh-server配置文件位于/etc/ssh/sshd_config,在这里能够定义SSH的服务port。默认port是22,你能够自定义成其它port号。如222。
 
             Port 222

 然后重新启动SSH服务.

     OpenSSH Server 已安装完毕.能够通过 /etc/ssh/sshd_config文件使登陆时间更短.
  由于 sshd 须要反查client的 dns 信息导致登陆时间变慢。 能够禁用这个特性来提高登录的速度。

首先,打开 sshd_config 文件:
  sudo gedit /etc/ssh/sshd_config
  找到 GSSAPI options 这一节,将以下两行凝视掉:
  #GSSAPIAuthentication yes #GSSAPIDelegateCredentials no

然后又一次启动 ssh 服务就可以.

4  重新启动SSH服务

   sudo /etc/init.d/ssh stop   #停止
   sudo /etc/init.d/ssh start  #启动
或 sudo /etc/init.d/ssh resart  #重新启动

5 client登陆SSH:

    1)  ssh remote_ip
    2)  ssh -l username remote_ip
    3)  ssh username@remote_ip         #将username换成自己的用户名。将remote_ip换成远程server的ip地址
      

     ssh wsh@192.168.3.102

         wsh为192.168.3.102 机器上的用户。须要输入password。
   4)  利用 PuTTy 通过证书认证登录server
     SSH 服务中,全部的内容都是加密传输的,安全性基本有保证。

使用证书认证的话,安全性更高,还能够实现证书认证自己主动登录。
      首先, 改动 sshd_config 文件,开启证书认证选项:
         RSAAuthentication yes
            PubkeyAuthentication yes
            AuthorizedKeysFile %h/.ssh/authorized_keys
         改动完毕后又一次启动 ssh 服务。

      其次,为SSH用户建立私钥和公钥。

         登录到须要建立密钥的账户下(注意需退出 root 用户),可用 su 命令---->执行:ssh-keygen---->将生成的 key 存放在默认文件夹下。
        (建立的过程中会提示输入 passphrase,这相当于给证书加个password,这样即使证书不小心被人拷走也不怕了。假设这个留空的话,后面就可以实现 PuTTy 通过证书认证的自己主动登录)
       ssh-keygen 命令会生成两个密钥, 我们须要将公钥改名留在server上:
          cd ~/.ssh mv id_rsa.pub authorized_keys
         然后将私钥 id_rsa 从server上复制出来,并删除掉server上的 id_rsa 文件。server上的设置就做完了.
      以下的步骤须要在client电脑上来做。
          首先,我们须要将 id_rsa 文件转化为 PuTTy 支持的格式。这里我们须要利用 PuTTyGEN 这个工具:
  点击 PuTTyGen 界面中的 Load button。选择 id_rsa 文件,输入 passphrase(假设有的话),然后再点击 Save PrivateKey button,这样 PuTTy 接受的私钥就做好了。

  打开 PuTTy,在 Session 中输入server的 IP 地址。在 Connection->SSH->Auth 下点击 Browse button。选择刚才生成好的私钥。

然后回到 Connection 选项。在 Auto-login username 中输入证书所属的用户名。回到 Session 选项卡,输入个名字点 Save 保存下这个 Session。点击底部的 Open 应该就能够通过证书认证登录到server了。假设有 passphrase 的话,登录过程中会要求输入 passphrase。否则将会直接登录到server上,很的方便。

 

6 断开连接:exit

7 一些操作:

 
   1) 将文件/文件夹从远程server拷至本地(scp)
 

  scp -r username@remote_ip:/home/username/remotefile.txt ./

   2) 将文件/文件夹从本地拷至远程server(scp)
  

 scp -r localfile.txt username@remote_ip:/home/username/

   3) 将文件/文件夹从远程server拷至本地(rsync)
  

 rsync -v -u -a --delete --rsh=ssh –stats username@remote_ip:/home/username/remotefile.txt

   4) 将文件/文件夹从本地拷至远程server(rsync)
  

 rsync -v -u -a --delete --rsh=ssh --stats localfile.txt username@remote_ip:/home/username/

   5) 连接远程ssh非22port的server(sshport为12345)

  

 ssh -p 12345 username@remote_ip

   6) 远程拷贝ssh非22port的server文件(sshport为12345)

   

     scp -P 12345 local_file username@remote_ip:remote_dir

    scp -P 12345 username@remote_ip:remote_file local_dir

    scp -o port=12345 username@remote_ip:remote_file local_dir

    scp -P 12345 -r local_dir/.* username@remote_ip:remote_dir

    复制文件夹,-r是将文件夹下的文件夹递归拷贝。".*"是将隐藏文件也拷贝过去。

须要先在远端创建好对应的文件夹。

   7) sftp(Secure File Transfer Protocol)使用方法

 

  sftp -o port=12345 username@remote_ip:remote_dir

   8) ssh默认配置是同意root登录的。能够改动配置表禁止其登录
       PermitRootLogin no   #禁止
       PermitRootLogin without-password #不须要password登陆
-------------------------------------------------------------------------------------
參考资料:
[1] 百度百科
[2] http://www.cnblogs.com/xiazh/archive/2010/08/13/1798844.html

[3] http://www.cnblogs.com/chen1987lei/archive/2010/12/02/1894768.html

[4] http://blog.sina.com.cn/s/blog_6cb543ef0100upx9.html
[5]http://www.cnblogs.com/rond/p/3688529.html

---------------------------------------------------------------------------------

author: wsh

email: tongzhuodenilove@163.com

ubuntu下进行ssh的更多相关文章

  1. 烂泥:【解决】Ubuntu下使用SSH连接centos系统很慢

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天在Ubuntu下使用SSH连接centos系统,发现连接很慢.建议一个连接大约需要30s.很是坑爹,如下: 后来查询相关资料,发现这个是Ubunt ...

  2. Ubuntu下开启ssh服务

    网上有很多介绍在Ubuntu下开启SSH服务的文章,但大多数介绍的方法测试后都不太理想,均不能实现远程登录到Ubuntu上,最后分析原因是都没有真正开启ssh-server服务.最终成功的方法如下: ...

  3. Ubuntu下访问SSH

    ssh程序分为有客户端程序openssh-client和服务端程序openssh-server.如果需要ssh登陆到别的电脑,需要安装openssh-client,该程序ubuntu是默认安装的.而如 ...

  4. Ubuntu下通过SSH远程登录服务器的方法

    1. 首先在服务器上安装ssh的服务器端.$ sudo aptitude install openssh-server 2. 启动ssh-server.$ /etc/init.d/ssh restar ...

  5. ubuntu下安装ssh服务器方法

    由于xshell远程连接ubuntu是通过ssh协议的,所以,需要给ubuntu安装ssh服务器. 1)ubuntu安装ssh服务器 sudo apt-get install openssh-serv ...

  6. ubuntu下的ssh工具gstm

    (转自:http://www.nenew.net/ubuntu-ssh-gstm.html) 首先安装: sudo apt-get install gstm 就可以安装,当然你也可以到http://s ...

  7. Ubuntu 下配置 SSH服务全过程及问题解决

    Windows下做Linux开发,装虚拟机里,怎么可以不用SSH呢.有人说,“做Linux开发,还不直接装机器上跑起来了,还挂虚拟机,开SSH……闲的蛋疼了吧”,不管怎样,我接触Linux算是3年了, ...

  8. 转:ubuntu下安装ssh服务

    本文内容来自 http://www.cnblogs.com/chen1987lei/archive/2010/12/02/1894768.html ========================= ...

  9. ubuntu下的ssh

    ubuntu默认是没有安装openssh-server的,今天简单的写一下ubuntu上ssh的安装与使用. 一.服务器端 安装 apt-get install openssh-server #安装 ...

随机推荐

  1. java格式化sql

    在日志分析中,经常会对记录的sql进行分析,所以将一整行sql格式化,进行多行缩就显得很有必要,许多数据库客户端都提供sql的格式化功能,但复杂的多层嵌套sql往往格式化的l还不够友好,所以就自己造了 ...

  2. js 作用域 ?????

    ///*第一种情况 */ //var mycars = new Array() //mycars[0] = 0; //mycars[1] = 1; //mycars[2] = 2; //functio ...

  3. sklearn.metrics.roc_curve

    官方网址:http://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics 首先认识单词:metrics: ['mɛ ...

  4. vue set方法

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  5. NOIp十连测 涂色游戏

    [问题描述]小A 和小B 在做游戏.他们找到了一个n 行m 列呈网格状的画板.小A 拿出了p 支不同颜色的画笔,开始在上面涂色.看到小A 涂好的画板,小B 觉得颜色太单调了,于是把画板擦干净,希望涂上 ...

  6. [转]TOpenDialog

    转自:http://www.cnblogs.com/zhangzhifeng/archive/2011/08/04/2127395.html 1.TOpenDialog组件的典型用法“打开”对话框是用 ...

  7. 56.fielddata filter的细粒度内存加载控制

    语法: POST /test_index/_mapping/test_type { "properties": { "test_field": { " ...

  8. Jquery 动态添加元素后,获取不到元素对象情况

  9. Rim 边缘光

    边缘光:计算眼睛和模型顶点法线的点积,结果作为强度,和材质输出:顶点和法线平行时,强度最大,垂直时,强度最小.因此将他取反,即同一方向时,强度最小,垂直时,强度最大. -dot(normalize(v ...

  10. web环境搭建

    [服务器] 硬件设备---计算机 软件 [作用] 作为web服务器运行.可以管理web项目 [目录说明] bin :存放各类可以执行文件,如:startup.bat conf:存放各类配置文件,常用配 ...