ssh方便一个开发小组中人员登录一台服务器,从事代码的编写、编译、运行。方便代码的共享及管理。ssh是一种安全协议,主要用于给远程登录会话数据进行加密,保证数据传输的安全。
SSH分客户端openssh-client和openssh-server,如果你只是想登陆别的机器的SSH只需要安装openssh-client(centos有默认安装),如果要使本机开放SSH服务就需要安装openssh-server。
SSH(Secure SHell)目的是要在非安全网络上提供安全的远程登录和其他安全服务
OpenSSH是 SSH 协议的免费开源实现,默认的SSH协议是版本2(支持RSA和DSA)
OpenSSH支持的用户认证方式有基于 PAM 的用户口令认证和用户密钥认证
安装SSH服务
1. 查看当前的centos是否安装了openssh-server服务。默认安装openssh-server服务。
rpm -qa|grep -E "openssh"
显示结果含有以下三个软件,则表示已经安装,否则需要安装缺失的软件
openssh-7.4p1-11.el7.x86_64
openssh-server-7.4p1-11.el7.x86_64
openssh-clients-7.4p1-11.el7.x86_64
如果存在这些文件,则可以跳过安装,直接进行远程连接。
2. 安装openssh-server服务
yum install openssh-server -y
3.配置OpenSSH服务(默认的配置已可以正常工作)
OpenSSH的主配置文件:/etc/ssh/sshd_config
常见的配置选项:
Port=22 设置SSH的端口号是22(默认端口号为22)
Protocol 2 启用SSH版本2协议
ListenAddress 192.168.0.222 设置服务监听的地址
DenyUsers user1 user2 foo 拒绝访问的用户(用空格隔开)
AllowUsers root osmond vivek 允许访问的用户(用空格隔开)
PermitRootLogin no 禁止root用户登陆
PermitEmptyPasswords no 用户登陆需要密码认证
PasswordAuthentication yes 启用口令认证方式
4.重启OpenSSH服务
service sshd restart
5.如果不能登录连接,则是没有开放端口,开启防火墙的22端口:
sudo firewall-cmd --zone=public --add-port=22/tcp --permanent
sudo service firewalld restart
端口的开放设置可以参看:https://www.cnblogs.com/moxiaoan/p/5683743.html
登陆Xshell
打开Xshell,选择“新建”,“连接”设置里选择SSH,主机填入需要连接的主机的IP地址。在“用户身份验证”中填入可用的登录CentOS的用户名和密码
输入自己centos的用户账号-密码
ssh服务介绍
本机内核环境
1.ssh服务
-
SSH是Secure Shell Protocol的简写
SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全 -
SSH服务主要提供两个服务功能
1)一是提供类似telnet远程联机服务器的服务,即SSH服务;
2)一个是类似FTP服务的sftp-server,借助SSH协议来传输数据的,提供更安全的SFTP服务(vsftp,proftp)。
2.ssh服务的所在软件包:openssh-clients、openssh-server
- openssh-clients
[root@localhost ~]# rpm -ql openssh-clients
/etc/ssh/ssh_config --- ssh服务客户端配置文件
/usr/bin/.ssh.hmac
/usr/bin/scp --- ssh服务远程传输复制命令scp
/usr/bin/sftp --- ssh服务远程传输文件服务
/usr/bin/slogin --- ssh服务远程登陆命令
/usr/bin/ssh --- ssh服务远程登陆命令
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id --- ssh服务远程分发公钥命令
/usr/bin/ssh-keyscan
- openssh-serve
[root@localhost ~]# rpm -ql openssh-server
/etc/rc.d/init.d/sshd #ssh服务启动脚本文件
/etc/ssh/sshd_config #ssh服务配置文件
/etc/sysconfig/sshd #ssh服务创建密钥有关
/usr/sbin/.sshd.hmac #ssh服务加密算法有关文件
/usr/sbin/sshd #ssh服务进程启动命令
3.ssh远程登陆方式
[d:\~]$ ssh 10.0.0.31 #端口号不能改,才能这样使用,如果端口号(默认22)更改的话,需要添加端口号
Connecting to 10.0.0.31:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.
Last login: Tue Oct 17 23:22:43 2017 from 10.0.0.253
[root@localhost ~]#
4.ssh服务认证过程与基于密钥认证过程
5.ssh服务认证连接过程
ssh服务基于密钥认证过程
6.ssh服务优化
ssh配置文件默认登陆参数修改
修改SSH服务的运行参数,是通过修改配置文件/etc/ssh/sshd_ config实现的。
一般来说SSH服务使用默认的配置已经能够很好的工作了,如果对安全要求不高,仅仅提供 SSH服务的情况,可以不需要修改任何配置。
SSH配置文件相关参数说明
命令参教 | 参数说明 |
---|---|
Port | 指定sshd进程监听的端口号,默认为22。可以使用多条指令监听多个端口。默认将在本机的所有网络接口上监听,但是可以通过 ListenAddress指定只在某个特定的接口上监听。 |
PermitEmptyPasswords | 是否允许密码为空的用户远程登录。默认为"no"。PermitRootLogin是否允许root登录。可用值如下:" yes"(默认)表示允许。"no”表示禁止。“without-password"表示禁止使用密码认证登录。” forced- commands-only"表示只有在指定了command选项的情况下才允许使用公钥认证登录。同时其它认证方法全部被禁止。这个值常用于做远程备份之类的事情。1. 多开一个窗口2. 临时多部署一条连接方式3. 给普通用户 sudo权限 |
UseDNS | 指定sshd是否应该对远程主机名进行反向解析,以检查此主机名是否与其IP地址真实对应。默认值为" yes"。 |
ListenAddress | 指定监听并提供服务相应的网卡地址信息 |
更改ssh默认登陆配置执行方法为:
[root@localhost ~]#cp /etc/ssh/sshd_config /etc/ssh/sshd_config.ori
##—>更改配置前进行备份,是系统管理员的一个良好的习惯。
[root@localhost ~]#vi /etc/ssh/sshd_config #—>编辑 sshd_config
Port 4188 #—>ssh连接默认端口为22,这淮都知道。因此,为提高安全级別,建议改掉它。
PermitRootLogin no #—>root超级用户黑客都知道,建议禁止它远程登陆能力。
PermitEmptyPasswords no #—>禁止空密码登陆
UseDNS no #—>不使用DNS
GSSA PI Authentication no #->认证的
重点配置参数说明
#Port 22 --- 表示修改ssh服务默认端口号
#AddressFamily any --- 指定监听ipv4地址,或是ipv6地址,或者所有都监听
#ListenAddress 0.0.0.0 --- 监听地址只能监听本地网卡上配置的地址,监听的网卡可以对请求做出相应
ssh服务秘钥登录配置
基于口令认证方式
[root@nfs01 ~]# ssh -p4188 10.0.0.41
root@10.0.0.41's password:
Last login: Wed Oct 18 12:07:34 2017 from 10.0.0.31
[root@backup ~]#
基于密钥认证方式
第一步、创建密钥对
[root@backup ~]# ssh-keygen -t rsa ### -t 指定以什么加密方式这里使用的rsa方式
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
8b:bd:a3:10:5d:88:e4:ea:0f:3a:d1:13:7a:31:f1:45 root@backup
The key's randomart image is:
+--[ RSA 2048]----+
| ..E |
| .o ... |
| oo.. . |
| +... . |
| o.+. . S |
|o.+ . o . |
| oo.. . o |
|.. o . .. |
|.. . .... |
+-----------------+
[root@backup ~]# ll ~/.ssh/
total 12
-rw------- 1 root root 1671 Oct 18 11:06 id_rsa
-rw-r--r-- 1 root root 393 Oct 18 11:06 id_rsa.pub
-rw-r--r-- 1 root root 1178 Oct 11 15:50 known_hosts
第二步、将公钥分发给存储服务器
[root@backup ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.0.31 ##-i指定公钥路径
root@10.0.0.31's password:
Now try logging into the machine, with "ssh '10.0.0.31'", and check in:
.ssh/authorized_keys
to make sure we haven't added extra keys that you weren't expecting.
第三步、登陆测试
[root@backup ssh]# ssh 10.0.0.31
Last login: Wed Oct 18 00:58:52 2017 from 172.16.1.41
[root@nfs01 ~]#