TOP

ssh基础

前言

  ssh是标准网络协议,实现Unix系统远程登录,默认端口22,采用密文形式在网络中传输数据;

  相对于明文传输的Telnet,具有更高的安全性;

  基于ssh协议产生了ssh客户端、ssh服务器等软件,客户端、服务之间通过ssh协议传输数据;

 


ssh客户端、服务器

  ssh客户端有两种方式登录服务器:口令 和 密钥

  第一种:口令

    需要用户名、密码,这要求密码具有足够的复杂度才能获取更高的安全性

    这里的用户名、密码是服务器的用户名、密码

sudo ssh rocketv2@192.168.2.11 // ssh 用户名@服务器ip  回车后输入密码

  第二种:密钥

    简单解释原理:

      首先,在客户端创建一对公钥、私钥[公钥文件位置:~/.ssh/id_rsa.pub  私钥文件位置:~/.ssh/id_rsa];

      其次,把客户端生成的公钥放到ssh服务器中[位置:~/.ssh/authorized_keys],同时保存好私钥;

      最后,在使用ssh登录时,ssh客户端会把发送私钥 跟 服务器中的公钥匹配,如果匹配成功就可以登录了;

 


 ssh客户端登录ssh服务器

   由于口令方式上文已讲解过,现在只介绍秘钥方式

   第一步:

    客户端生成公钥、私钥对(记住公私钥对的位置以及名称)

ssh-keygen -t rsa  //一直回车,就会在“~/.ssh/”下生成“id_rsa、id_rsa.pub”两个文件
//注意:回车的过程 需要设置密码,一直回车就是默认密码为空 // 这个密码是对私钥的设置,应该设置成ssh服务器的登录密码;一般默认不设置;

  第二步:

    将ssh客户端生成的公钥放到ssh服务器中:可以使用命令的方式、U盘拷贝

scp ~/.ssh/id_rsa.pub rocketv2@192.168.2.11:/root/  //公钥文件传到/root下

    在ssh服务器上,将公钥中的内容放到~/.ssh/authorized_keys文件中(如果没有.ssh或者authorized_keys文件,手动创建);

  

    第二步中的所有操作,可以使用ssh-copy-id 命令一步到位,在.ssh目录中,使用命令时,会将公钥上传至服务器并创建.ssh/authorized_keys

ssh-copy-id root@192.168.2.11 //将公钥上传到服务器,创建.ssh/authorized_keys文件

 

  第三步:

    在客户端登录ssh服务器

ssh rocketv2@192.168.2.11 //无密码登录

 

 


ssh客户端、服务器安装 (ubuntu 16.04 LTS)

   客户端安装

    1.安装(ssh配置文件在/etc/ssh/ssh_config)客户端一般随系统安装

sudo apt-get install openssh-client  //安装客户端

  服务器安装

    1.安装  (ssh-server配置文件在/etc/ssh/sshd_config)

sudo apt-get install openssh-server

    2.检测版本

sudo ssh -V

    3.检查、开启、关闭服务

ps -e | grep ssh   //检查 如果有ssh-server说明已经启动,否则使用 sudo /etc/init.d/ssh start启动

sudo /etc/init.d/ssh restart   或者 sudo service sshd restart //重启ssh服务

sudo /etc/init.d/ssh stop      或者 sudo service sshd stop    //关闭服务

sudo /etc/init.d/ssh start     或者 sudo service sshd start   //开启服务

 


 SSH方式登陆报错

  在ubuntu终端中使用ssh连接远程服务器,登陆失败

  /home/用户/  .ssh/  known_hosts

  /etc/ssh ssh_config

  报错一:

    

    按照报错中的提示:ssh-keygen -f "/home/xubiao/.ssh/known_hosts" -R 107.xxx.xxx.xxx 

    远程主机身份证明已经改动;有可能有些人在做邪恶的事;man-in-the-middle attack(中间人攻击);

  报错二:

    

 (未完待续)

参考:

  http://www.cnblogs.com/keethebest/p/3184355.html

  http://www.cnblogs.com/fengbeihong/p/3307575.html

  http://www.cnblogs.com/bootoo/p/5068514.html

  http://www.linuxidc.com/Linux/2015-03/115056.htm

    http://www.cnblogs.com/kex1n/p/5220823.html

posted @ 2016-08-24 12:44  RocketV2  阅读(322)  评论(0编辑  收藏  举报