设为首页 收藏本站
查看: 1222|回复: 0

[经验分享] Ubuntu中SSH命令详解一

[复制链接]

尚未签到

发表于 2018-5-3 09:37:21 | 显示全部楼层 |阅读模式
一、SSH是什么?

SSH(SecureShell)是目前比较可靠的为远程登录会话和其他网络服务提供安全性的协议。

利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH,可以把所有传输的数据进行加密,

也能够防止DNS欺骗和IP欺骗。下面介绍的是Ubuntu中SSH的概念和使用的方法,具体内容如下所述。

  
SSH的英文全称是SecureSHell,SSH协议族由IETF(InternetEngineeringTaskForce)的NetworkWorkingGroup制定,SSH协议的内容SSH协议是建立在应用层和传输层基础上的安全协议。通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。

传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。

SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、Pop、甚至为PPP提供一个安全的”通道”。

最初SSH是由芬兰的一家公司开发的。但是因为受版权和加密算法的限制,现在很多人都转而使用OpenSSH。OpenSSH是SSH的替代软件,而且是免费的,可以预计将来会有越来越多的人使用它而不是SSH。SSH是由客户端和服务端的软件组成的。SSH安装容易、使用简单,而且比较常见,一般的Unix系统、Linux系统、FreeBSD系统都附带有支持SSH的应用程序包。



二、SSH用法

    1、登陆远程主机

           命令格式: ssh  username@hostIp   或者  ssh  hostIp  -l username

                            其中 username代表远程主机的某个用户的登陆用户名,hostIp代表远程主机的IP地址 。

                            第二个命令的-l 代表登陆的含义 ,参数指定为登录的用户名。

           例如:ssh  testagent2@10.57.18.10      或   ssh 10.57.18.10 -l testagent2       执行命令后输入用户名的密码,则可以进入远程主机。



   2、连接到远程主机指定的端口

          命令格式:  ssh  username@hostIp   -p  端口号   或者   ssh  hostIp  -l username  -p  端口号。

          例如:ssh  testagent2@10.57.18.10   -p  2222   或   ssh 10.57.18.10 -l testagent2  -p  2222   

          使用场景:当把某个远程暴漏给外网可以ssh访问时,通常需要在路由里做端口映射,我们不会把22端口直接映射出去,而是转换成其他端口号, 这时就需要使用-p 端口号命令格式,不指定端口时,默认连接的就是22端口。



  3、通过远程主机1跳到远程主机2

       命令格式:  ssh  -t  remoteserver1  ssh  remoteserver2

         说明:当远程主机remoteserver2无法直接到达时,可以使用-t参数,然后由remoteserver1跳转到remoteserver2。

                 在此过程中要先输入remoteserver1的密码,然后再输入remoteserver2的密码,然后就可以操作remoteserver2了。



    4、通过SSH运行远程shell命令:
         命令格式: ssh -l name remoteserver ‘command’
             说明:连接到远程主机,并执行远程主机的command命令,命令执行完后退出远程主机终端。
             例如:ssh 10.57.18.10 -l testagent2   ls -l   or   ssh testagent2@10.57.18.10  ls -l    列出远程终端的目录。
  
  
  
    5、修改SSH监听端口
             默认情况下,SSH监听连接端口22,攻击者使用端口扫描软件就可以看到主机是否运行有SSH服务,将SSH端口修改为大于1024的端口是一个明智的选择,
               因为大多数端口扫描软件(包括nmap)默认情况都不扫描高位端口。
           修改方法:
                    1、 打开/etc/ssh/sshd_config文件并查找下面这样的行: #   Port
                    2、 去掉该行前面的# 号,然后修改端口号并重新启动SSH务:  /etc/init.d/ssh restart
  
  
    6、仅允许SSH协议版本2:
        有两个SSH协议版本,仅使用SSH协议版本2会更安全,SSH协议版本1有安全问 题,包括中间人攻击(man-in-the-middle)和注入(insertion)攻击。
         修改方法:
                     1、 编辑/etc/ssh/sshd_config文件并查找下面这样的行: #Protocol 2,1
                 2、修改为 Protocol 2
   
  
     7、禁止root用户登录:
              通常情况下,不采用直接用root用户登录到远程主机,由于root用户拥有超级权限,这样会带来安全隐患,所以,一般我们用普通用户登录,当需要管理远程主机时,再切换到root用户下。
         修改方法:
                     1、打开/etc/ssh/sshd_config文件并查找下面这样的行: #PermitRootLogin yes
                     2、将#号去掉,然后将yes修改成no,重启ssh服务,这样就可以禁止root用户登录。
  
  
      8、设置登录时提示信息
             1、首先编辑一个文件,如bannertest.txt,文件内容自行定义。
             2、然后打开/etc/ssh/sshd_config文件并查找下面这样的行:  #Banner /some/path
             3、将#号去掉,然后将bannertest.txt文件的全路径替换/some/path,然后保存,重启ssh服务。
           当客户端登录时,就会看到bannertest.txt文件中的提示信息。
  
  
      9、进行端口映射:
              假如公司内网有台web服务器,但是只对内不对外,这样,外网就无法访问,可以用ssh进行端口映射来实现外网访问内网的web服务器。假如web服务器名为webserver,webserver可以用ssh访问到远端主机remoteserver,登录到webserver,然后用下面命令进行映射
      命令格式:
      ssh -R  3000:localhost:80  remoteserver
      执行完成后,在remoteserver机器上,执行netstat -an|grep 3000,查看有没有开通3000端口。并执行以下命令观察是否可以打开webserver上的网页
      $ w3m http://127.0.0.1:3000
      如果能打开界面,说明映射成功.但是,这只限于本机访问web服务器,即只能remoteserver机器访问webserver。因为3000端口绑定的是remoteserver机器的127.0.0.1端口。可以编辑remoteserver机器上的/etc/ssh/sshd_config文件并添加如下内容:
      添加 GatewayPorts yes  内容,把监听端口3000绑定到 0.0.0.0 地址上,这样外部的所有机器都能访问到这个监听端口,然后保存退出。并重启ssh服务。完成后其它机器就可以在浏览器中输入 http://remoteserver:3000来访问webserver了。
  
  
     10、scp命令
             scp命令是SSH中最方便有用的命令,可以在两台服务器之间传送文件。并且在传输过程中仍是使用ssh加密的。
      命令如下:
             1、将远程主机的/tmp/test 文件复制到本地的/bak文件夹下
                  scp  root@192.168.1.120:/tmp/test  /bak        输入远程主机用户密码即可。
             2、 将本地/bak/1234 文件复制到远程主机的/tmp文件夹下
                  scp  /bak/1234 root@192.168.1.120:/tmp 输入远程主机用户密码即可。
  
  
  
  标记红色的用法是用的比较多的。ssh还有很多其他用法,例如sftp等,这里不在讲述,有兴趣可以从网上查些资料
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-455170-1-1.html 上篇帖子: ubuntu创建新用户并增加管理员权限 下篇帖子: /dev/null 2>&1 详解 (ubuntu
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表