LinuxService- SSH理论及CentOS7安装使用SSH

1  关于SSH

      SSH,security shell,安全外壳,用于远程连接。在SSH之前一直使用Telnet进行远程连接,端口为 TCP  23,但由于用Telnet进行数据传输时是明文传输,因此采用加密传输的SSH,端口为 TCP  22,SSH也是基于C/S架构的。

2  SSH的两种登录方式

1)基于口令的登录方式。

      客户端向服务器的22号端口发起连接请求,服务器端向客户端发送一个公钥,客户端使用该公钥对用户名和密码进行加密后传输至服务器,服务器使用公钥对应的私钥进行解密,对比用户名和密码,通过后即可登录。

注:公钥用于对数据加密,私钥用于对加密的数据进行解密。客户端没有办法验证服务器,接受了公钥就代表通过验证。

2)基于秘钥方式登录。(很重要)

      在客户端生成一对秘钥对(公钥和私钥),将公钥发送至服务器端;服务器端使用收到的公钥加密一串随机产生的字符并发送给客户端;客户端接收到加密后的数据时,使用私钥进行解密,并将解密后的结果发送给服务器端;服务器端对接收的数据与加密前的数据进行对比,对比成功后,客户端即可登录。

      也就是说用不着用户密码,只需要用户名就能到登录。

3  配置SSH服务

3.1  配置服务器端

      注:如果安装了centos7的基础设施服务器,SSH相关软件已经安装,查看用yum  list | grep  ssh。查到后会发现@后面是anaconda,这就是代表安装系统时已经安装。如,ssh的相关软件(openssh   openssh-clients  openssh-server)都在安装系统时安装好了

1)随系统安装好的软件   openssh   openssh-clients  openssh-server

2)启动服务  系统默认ssh服务已经开启,且是开机自启状态

3.2  配置客户端

1)随系统安装好的软件   openssh   openssh-clients  openssh-server

2)在客户端使用ssh连接服务器端

ssh    用户名@服务器的IP/服务器的主机名(前提是主机名能被解析)

注:默认登录方式为基于口令的登录方式。登录成功后就是已经远程连接了,在客户端操作和在服务器操作时一样的。退出用exit。来自服务器端的公钥文件保存在 /.ssh/known_hosts 。

4  限制用户登录

4.1 允许某用户使用SSH登录

1)在服务器端

第一步 编辑配置文件 vim  /etc/ssh/sshd_config  ,在末尾追加  allowusers  用户名

例:  allowusers   aa

第二步 重启服务 systemctl   restart   sshd

注:ssh目录下有带.pub结尾的,有.key结尾的,这样的都是成对的;

ssh中的文件用ll –h查看后发现有的文件大小是0,这样就不能登录ssh,需要重新安装ssh的那3个软件——openssh   openssh-clients  openssh-server

2)在客户端测试

注:只有被允许的用户可以登录,其他用户包括root,都不能登录

3)允许多个用户登录,编辑配置文件/etc/ssh/sshd_config时,allowusers后面的用户名用空格隔开即可   allowusers  用户名1  用户名2   用户名3

4.2 配置文件的解读(了解)

设置SSH服务监听的端口号           Port  22

设置使用的SSH协议的顺序           Protocol  2,1

设置SSH服务器绑定的IP地址         ListenAddress 0.0.0.0

是否允许root登录(建议不允许)     PermitRootLogin  no

设置是否允许空密码用户登录          PermitEmptyPasswords   no

设置是否使用口令认证方式            PasswordAuthentication  yes

是否允许用户使用ssh子系统          Subsystem  /usr/local/sbin/sftpd

不允许root在没有秘钥的主机上登录   PermitRootLogin without-password

4.3 允许用户从指定的客户端登录

1)在服务器端

第一步 编辑配置文件 vim  /etc/ssh/sshd_config  ,在文件末尾追加:

allowusers  用户名@客户端IP/客户端主机名

例:    allowusers  aa@192.168.3.2

第二步 重启服务 systemctl   restart   sshd

2)客户端测试

只允许指定用户从指定客户端登录,其他用户均无法登录

4.4 禁止用户登录

1)在服务器端

第一步 编辑配置文件 vim  /etc/ssh/sshd_config  ,在文件末尾追加:

denyusers      用户名

例:    denyusers      aa

注:禁止多个用户登录则在文件末尾追加  denyusers  用户名1  用户名2   即用户名用空格隔开

第二步 重启服务 systemctl   restart   sshd

2)客户端测试

    只有被禁止的用户不可以登录,其他用户都能登录。

4.5 通过/etc/hosts.allow 和 / etc/hosts.deny 控制客户端通过ssh连接服务器

1)编辑文件/etc/hosts.deny,没有的话就新建一个:vim   /etc/hosts.deny ,写入

    sshd:All            //表示所有客户端均无法通过ssh协议连接服务器

2)编辑文件/etc/hosts.allow,没有的话就新建一个:vim   /etc/hosts.allow ,写入

sshd:192.168.3.2    //只允许192.168.3.2的客户端通过ssh连接到服务器

4.6 基于秘钥的方式登录服务器

第一步 在客户端生成秘钥对:  ssh-keygen      //gen是generate

注:生成的秘钥默认保存的位置为~/.ssh目录下,公钥为id_rsa.pub,私钥为id.rsa。rsa是加密的算法

第二步 将客户端生成的公钥上传到服务器:

ssh-copy-id   用户名@服务器IP/服务器主机名

例1: ssh-copy-id  192.168.1.1       //默认用户名是root

例2: ssh-copy-id  aa@192.168.1.1   //将秘钥copy给了aa用户

注:想以哪个用户身份登录就将秘钥copy给哪个用户;服务器端将客户端发来的公钥保存在 ~/.ssh/authorized_keys 中

第三步 在客户端登录服务器:  ssh   用户名@服务器IP/服务器主机名

例1: ssh  192.168.1.1          //直接就能登录,不用输入root密码

例2: ssh  aa@192.168.1.1      //以aa身份登录,不用输入aa的密码

5  SSH子系统

1)sftp  远程文件传输

功能:将本地/远程文件上传或许下载至远程/本地

登录方式:   sftp  用户名@服务器IP/主机名

使用方式:与ftp的类似。

2)scp 远程复制(经常用)

将远程主机上的文件复制到本机: scp   用户名@主机名/IP:主机上文件路径   本地目录

将本地文件复制到远程主机:     scp   本地文件路径   用户名@主机名/IP:目录

例1:# scp    root@192.168.1.1:/root/f1    /root

// 将 root@192.168.1.1上的/root/f1 复制到本机 /root下

例2:# scp   /root/f2    root@192.168.1.1:/root

// 将 本地 /root下的f2上传到 192.168.1.1的 /root

注:如果复制整个目录用 –r 参数。sftp 与scp均依赖SSH协议,也就是说SSH服务必须开启才能使用这两个命令。基于SSH的相关软件secureCRT,WinSCP等。工作中经常使用。


转载请注明出处,谢谢!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
下面是CentOS 6.5配置SSH并进行使用的教程: 1. 首先,确保您已经安装了OpenSSH服务器和客户端。如果没有安装,可以使用以下命令进行安装: ``` yum install openssh-server openssh-clients ``` 2. 确认SSH服务已经启动: ``` service sshd status ``` 如果服务未启动,则可以使用以下命令启动服务: ``` service sshd start ``` 3. 配置SSH服务: 默认情况下,SSH服务已经配置为允许基于密码的身份验证。但是,为了提高安全性,我们建议您使用基于密钥的身份验证。为此,请按照以下步骤操作: 3.1 生成SSH密钥: ``` ssh-keygen -t rsa ``` 提示输入文件名和密码时,您可以直接按Enter键,不输入任何内容,直到出现“Enter passphrase (empty for no passphrase)”的提示,再次按Enter键即可。 3.2 将公钥复制到远程主机: ``` ssh-copy-id user@remote_host ``` 请将“user”替换为您要连接的远程主机的用户名,“remote_host”替换为远程主机的IP地址或域名。在输入此命令后,您将被要求输入远程主机的密码一次。 4. 连接到远程主机: ``` ssh user@remote_host ``` 请将“user”替换为您要连接的远程主机的用户名,“remote_host”替换为远程主机的IP地址或域名。如果您已经按照步骤3进行了密钥身份验证设置,则您将不再需要输入密码即可连接到远程主机。 以上就是CentOS 6.5配置SSH并进行使用的教程。希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值