精华内容
下载资源
问答
  • Linux ssh远程登录

    千次阅读 2017-07-19 20:37:08
    Linux ssh命令 ssh远程登录 ssh讲解示例 ssh登录限制

    本文内容结构为:

    • ssh英文手册的主要部分翻译
    • ssh的实际用例以及连接限制配置

    原英文手册可在Linux命令行执行命令 man ssh

    名称

     ssh — OpenSSH SSH客户端(远程登陆程序)
     使用ssh -V命令可以得到版本号。需要注意的是,Linux一般自带的是OpenSSH: 下面的例子即表明该系统正在使用OpenSSH:
    
    $ ssh -V 
    OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003
    
    下面的例子表明该系统正在使用SSH2:
    
    $ ssh -V 
    ssh: SSH Secure Shell 3.2.9.1 (non-commercial version) on i686-pc-linux-gnu 
    

    摘要

     ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
         [-D [bind_address:]port] [-E log_file] [-e escape_char] [-F configfile]
         [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport]
         [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
         [-Q cipher | cipher-auth | mac | kex | key]
         [-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
         [-w local_tun[:remote_tun]] [user@]hostname [command]
    

    描述

     ssh (SSH客户端)是一个登陆远程机器并执行命令的程序,它是为了替代rlogin和rsh在两台互信主机之间的不安全网络中提供安全加密通信而设计出来的
    

    X11连接和任意tcp端口也能够在安全通道之间转发

     ssh连接并登陆特定主机(通过用户名).用户必须提供验证信息(取决于协议版本)去登陆主机  The
     如果命令被明确指出,那么它将被在远程主机中执行而不是登陆SHELL中
     登陆信息选项如下:
    
     -1      强制ssh使用协议版本1登陆
    
     -2      强制ssh只尝试用协议版本2登陆
    
     -4      强制ssh只使用ipv4登陆
    
     -6      强制ssh只使用ipv6登陆
    
     -A      允许认真代理的转发机制(也可以在每一个主机系统的配置文件中明确指出)。代理转发要小心使用
    

    在远程主机上有文件许可权限的用户(对于代理的UNIX-domain套接口)能够通过连接转发访问本地代理。攻击者能够通过代理获取密钥文件,而且攻击者能够在密钥下执行操作使得自己使用代理加载的认证信息进行验证

     -a      拒绝认证代理的连接
    
     -b bind_address
             在本地机器上使用绑定地址作为连接的源地址(只在拥有多个地址的系统中有效)
    
     -C      请求所有传输数据的压缩(包括标准输入、输出、错误输出、X11转发的数据和TCP连接)
    
     -c cipher_spec
             选择明确的密码加密会话
    
    
     -D [bind_address:]port
             明确指出一个本地的动态 应用级别端口转发
    
     -E log_file
             将debug日至附加到日志文件而不是显示到标准错误输出
    
     -e escape_char
             对使用pty的会话设置一个退出字符
    
     -F configfile
             指明可选用户的配置文件
    
     -f      在命令执行前请求ssh到后台执行
    
     -g      允许远程主机连接本地转发端口
    
     -I pkcs11
             指定ssh要用来通信的PKCS#11 token提供用户私有RSA密钥的PKCS#11分享库
    
     -i identity_file
             选择一个文件用来获取认证(私有密钥的)公钥
    
     -K     允许GSSAPI-based认证和为GSSAPI转发提供服务器证明
     -k     拒绝服务器的GSSAPI转发认证
    
     -L [bind_address:]port:host:hostport
             给需要连接的远程一侧主机指明本地机器上的给定转发端口
    
     -l login_name
             指明需要登陆远程主机的用户名称
    
     -M      为连接分享设置ssh客户端为master模式
    
     -N      不要执行远程命令(只对转发端口有效,针对第二个协议版本)
    
     -n      从/dev/null重定向标准输入
    
     -O ctl_cmd
             控制一个活跃的连接为多元主进程
    
     -o option
             以给定格式的参数使用配置文件
             选项与跟随的值如下
    
                   AddressFamily
                   BatchMode
                   BindAddress
                   CanonicalDomains
                   CanonicalizeFallbackLocal
                  ...
                   VerifyHostKeyDNS
                   VisualHostKey
                   XAuthLocation
    
     -p port
             指定连接远程主机的端口,也可以在配置文件中指明
    
     -Q cipher | cipher-auth | mac | kex | key
             查询ssh支持的算法(针对协议版本2)
    
     -R [bind_address:]port:host:hostport
             指明远程主机的给定转发端口和本地一侧的端口
    
    
     -S ctl_path
             指明连接分享的控制接口位置或者字符串“none”关闭连接分享
    
     -s      用来请求调用远程主机的子系统
    
     -T      关闭pseudo-tty分配
    
     -t      强制pseudo-tty分配开启
    
    
    
     -v      长模式
    
     -W host:port
             在客户端上请求标准输入输出通过安全通道转发到主机
    
     -w local_tun[:remote_tun]
             请求通道设备用指定的tun在客户端和主机之间转发
    
    
     -X      允许X11转发(可以在每一个客户端中的配置文件中指定)
    
     -x      拒绝X11转发
    
     -Y      开启信任的X11转发.
    
     -y      使用syslog(3)系统发送日志信息Send log information using the syslog(3) system module.  By default this
             information is sent to stderr.
    
     ssh能够从每一个用户的配置文件和系统侧配置文件获取额外配置信息.
    
     ssh 远程主机用户@远程主机ip -X   
     ##调用远程主机图形工具
     ssh  远程主机用户@远程主机ip command 
     ##直接在远程主机运行某条命令
    

    示例:

    注意:

    连接前请确认主机可达性和端口可用性
    

    1、 最简单的远程连接

    [root@foundation36 Desktop]# ssh root@172.25.254.x
        #执行连接命令
    root@172.25.254.x's password: 
        #需要输入所要连接的远程主机下指定用户的密码
    Last login: Wed Jul 19 15:03:27 2017 from 172.25.254.36
    ABRT has detected 1 problem(s). For more info run: abrt-cli list --since 1500447808
        #连接成功
    [root@foundationx ~]# ls
        #现在已经成功登陆,特征为[root@foundation36 Desktop]变为了[root@foundationx ~]
    anaconda-ks.cfg  foundation-config-post.log  rht-ks-post.log  rht-ks-pre.log
    [root@foundationx ~]# 
    

    2、临时回到本地主机

    输入退出符号:“~”与“Control-Z”组合。
    
    当你输入“~”你不会立即在屏幕上看到,当你按下<Control-Z>并且按回车之后才一起显示。如下,在远程主机中以此输入“~<Control-Z>”
    
    remotehost$ ~^Z 
    [1]+ Stopped ssh -l jsmith remotehost 
    localhost$
    

    3、回到了本地主机,ssh远程客户端会话就在UNIX后台中运行,你可以像下面那样查看它:

    localhost$ jobs 
    [1]+ Stopped ssh -l jsmith remotehost
    

    4、 你可以将后台运行的ssh会话进程切换到前台,重新回到远程主机,而无需输入密码

    localhost$ fg %1 
    ssh -l jsmith remotehost 
    remotehost$

    服务相关

    查看sshd服务状态:

    systemctl status sshd
    

    开启服务

    systemctl start sshd
    

    关闭服务

    systemctl stop sshd
    

    重启服务

    systemctl restart sshd
    

    ssh连接的高级配置

    sshkey加密

    1.生成公钥私钥

    root@ubuntu:~# ssh-keygen      ##生成公钥私钥工具,无需输入任何信息,一直回车直到命令结束
    

    这里写图片描述

    root@ubuntu:~# ls /root/.ssh/
    id_rsa  id_rsa.pub
    id_rsa      ##私钥,就是钥匙
    id_rsa.pub  ##公钥,就是锁
    

    2.添加key认证方式

    root@ubuntu:~# ssh-copy-id -i /root/.ssh/id_rsa.pub  root@172.25.0.11
    ssh-copy-id     ##添加key认证方式的工具
    -i          ##指定加密key文件
    /root/.ssh/id_rsa.pub   ##加密key
    root            ##加密用户为root
    172.25.0.11     ##被加密主机ip
    

    3.分发钥匙给client主机

    root@ubuntu:~# scp /root/.ssh/id_rsa root@172.25.0.10:/root/.ssh/
    

    4.提升openssh的安全级别
    通过修改openssh-server配置文件,我们可以设定更多的登录限制

    root@ubuntu:~# vim /etc/ssh/sshd_config
    

    可添加或者修改的常用设置有以下几条

        PasswordAuthentication yes|no
        ##是否开启用户密码认证,yes为支持no为关闭
    
        PermitRootLogin yes|no
        ##是否允许超级用户登陆
    
        AllowUsers student admin
        ##用户白名单,只有在名单中出现的用户可以使用sshd建立shell
    
        DenyUsers guest
        ##用户黑名单
    
        AllowGroups root halo
        ##允许属于root和halo组的用户可以登录
    
        Match参数的用法
        下例中public 组中的所有用户和以 test 开头的所有用户名都不能使用 TCP 转发:
    
    ## sshd_config file
    ## Global settings
    
    # Example (reflects default settings):
    #
    # Host *
    #   ForwardAgent no
    #   ForwardX11 no
    #   PubkeyAuthentication yes
    #   PasswordAuthentication yes
    #   FallBackToRsh no
    #   UseRsh no
    #   BatchMode no
    #   CheckHostIP yes
    #   StrictHostKeyChecking ask
    #   EscapeChar ~
    Match Group public
    AllowTcpForwarding no
    Match User test*
    AllowTcpForwarding no
    

    通过hosts文件设置sshd 允许/禁止 的主机连接

    vim /etc/hosts.deny
    #在文本最后添加以下内容,表示拒绝所有主机的sshd连接
    sshd:ALL
    
    
    vim /etc/hosts.allow
    #在文本最后添加以下内容,表示允许ssh连接的主机
    sshd:ip, ip, ip ,...
    
    
    sshd:ALL EXCEPT IP
    ##在上边两个文件中都可以以上面的方式设置除了某个主机之外其他主机拒绝或者允许ssh连接访问
    
    ##设置客户端ssh登陆后的提示信息,可以在这个文件中编写你想要在用户登录成功后显示的提示:
    vim /etc/motd
    

    用户登陆审记(可用来查看哪些主机登录过系统)

    w       ##查看使用系统的当前用户有那些
    w -f        ##-f查看使用地点
    
    
    last        ##查看用户登陆成功历史
    

    这里写图片描述

    lastb       ##查看用户登陆未成功历史
    

    这里写图片描述

    展开全文
  • Linux SSH远程登录

    2020-03-12 18:00:23
    1、命令 ...ssh作用:为远程登录会话和其他网络服务提供安全性协议。 ssh小结:  1、SSH是安全的加密协议,用于远程连接服务器。  2、SSH默认端口是22,安全协议版本有SSH2、SSH1。(SSH1...

    1、命令

    ssh -p 22 root@192.168.80.192

    ssh root@192.168.80.192

     2、说明

    ssh特点:在传输数据的时候,对文件加密后传输。

    ssh作用:为远程登录会话和其他网络服务提供安全性协议。

      1)SSH 乃安全的加密协议,目的:远程连接服务器。

      2)SSH 默认端口22;安全协议版本有SSH2、SSH1;SSH1是有漏洞.

      3)SSH 服务端包含两个服务功能SSH远程连接、SFTP服务。

      4)Linux SSH客户端包含ssh远程连接命令,以及远程拷贝scp命令等。

    3、超时设置

    ssh -o ServerAliveInterval=60 root@192.168.80.192

    展开全文
  • linux ssh远程登录被拒绝

    千次阅读 2019-06-25 19:49:19
    linux ssh远程登录被拒绝 首先检查端口是否开放,阿里云安全组检查,然后是防火墙查看22端口是否开启,如果都正常,可以关闭防火墙试试

    linux ssh远程登录被拒绝

    首先检查端口是否开放,阿里云安全组检查,然后是防火墙查看22端口是否开启,如果都正常,可以关闭防火墙试试

    展开全文
  • Linux SSH远程登录慢的解决方法

    一台中转机ssh登录服务器(Linux)的时候,很慢,大概要15秒左右,但是ping很快,而且登录后服务器的负载也很低。这个小问题一直没有引起注意,今天领导登录的时候发现了这个问题,并且给出了原因和解决方法,记录在这里:

        在目标服务器上有一个文件/etc/nsswitch.conf ,里面有如下一行

        hosts: files dns

        这行的含义是对于访问的主机进行域名解析的顺序,是先访问file,也就是/etc/hosts文件,如果hosts中没有记录域名,则访问dns,进行域名解析,如果dns也无法访问,就会等待访问超时后返回,因此等待时间比较长。

        那如果将这一行屏蔽掉是不是也可以达到同样的效果呢?应该是可以的,但是如果本机要通过域名访问其他服务器,则肯定无法访问,因此这行应该需要保留。这个问题也提示我们,dns如果不可用,会带来的一些副作用的

     

    from:http://edu.cnzz.cn/NewsInfo/14180.aspx

    展开全文
  • Linux SSH 远程登录讲解

    千次阅读 2013-09-15 10:22:53
    ssh命令是Linux下常用的远程登录...使用SSH远程登录主机,端口为22。用户为当前登录用户。 格式:ssh -p 格式:ssh -p 使用SSH远程登录主机,端口为。用户为当前登录用户。 格式:ssh -l 格式:ssh @ 使用SS
  • 由于是用户文件夹,所以出现了 Linux SSH 远程登录后显示-bash-4.2$ 问题。 网上查找,产生这样问题的原因有三种: 没有给用户创建 /home/username 主目录 用户没有 /home/username 主目录的读取权限 主目录 /home/...
  • Linux SSH 远程登录后显示-bash-4.1$的解决办法 发表于2016-06-30 | 分类于ssh | 暂无评论 linux系统新建的用户用ssh远程登陆显示-bash-4.1$,不显示用户名路径。 产生这种问题有三种原因。 没有给用户创建/...
  • Linux SSH远程登录快速配置

    千次阅读 2015-11-23 03:27:43
    SSH远程登录最近使用到了云服务器,经常需要登陆远程服务器进行大量操作。远程登录服务器一般使用ssh协议。常用的登陆方式有两种:1.账号+密码手动验证$ssh user@192.168.1.1 $password:2.公钥+私钥对自动验证...
  • Linux SSH 远程登录后显示-bash-4.1$的解决办法 linux系统新建的用户用ssh远程登陆显示-bash-4.1$,不显示用户名路径。 产生这种问题有三种原因。 没有给用户创建/home/username 主目录用户没有/home/username ...
  • 如果从一台linux服务器通过ssh远程登录到另一台Linux机器, 这种情况通常会在多台服务器的时候用到。 如用root帐号连接一个IP为192.168.1.102的机器,输入:“ ssh192.168.1.102-lroot ”, 回车后输入root...
  • 对于通过SSH远程连接来说,出现了Access denied问题,百度中都基本上需要更改/etc/ssh/sshd_config文件,我也去更改,但是还是不行,后来一个巧合发现了我的问题所在 我的selinux状态一直是开启状态,所以一直连不上...
  • 开启linux ssh远程登录

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

    2015-01-28 10:36:00
    ssh命令用于远程登录Linux主机。 常用格式:ssh [-l login_name] [-p port] [user@]hostname 更详细的可以用ssh -h查看。 举例 不指定用户: ssh 192.168.0.11 指定用户: ssh -l ...
  • SSH由客户端和服务端的软件组成,在客户端可以使用的软件有SecureCRT、putty、Xshell等, 而在服务器端运行的是一个sshd的服务,通过使用SSH,可以把所有传输的数据进行加密,而且也能够 防止dns和IP欺骗,此外,SSH...
  • 初识linux ssh远程登录协议

    千次阅读 2014-03-29 15:14:12
    一、ssh介绍  所谓ssh就是secure shell的缩写,也就是安全外壳协议,是建立在应用层和传输层基础上的安全协议。那么什么是安全呢,传统的网络服务程序如ftp,telnet等都是不安全的,因为它们都是明文传输,也就是...
  • linux ssh远程登录原理及中断原理

    千次阅读 2013-09-18 22:05:30
    问题:对远程linux/UNIX系统进行操作,通常的途径是采用终端软件通过SSH登陆远程...我们经常会碰到这样的问题,用 telnet/ssh 登录远程Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任
  • 错误出现提示: 解决方法: ssh-keygen -R + IP地址 例如: ssh-keygen -R 192.168.50.31 此时再次输入ssh指令,提示输入密码,输入密码后,成功访问。
  • 就想这文件是个啥东东,待一查,才明白了,原来known_hosts是记录远程主机的公钥的文件,之前重装个系统,而保存的公钥还是未重装系统的系统公钥,在ssh链接的时候首先会验证公钥,如果公钥不对,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,854
精华内容 3,141
关键字:

linuxssh远程登录

linux 订阅