SSH基本管理和配置文件的使用

服务端:linl_S    IP:10.0.0.15

客户端:lin_C    IP:10.0.0.16

SSHD服务

SSH协议:安全外壳协议。为Secure Shell的缩写。SSH为建立在应用层和传输层基础上的安全协议。

sshd服务使用SSH协议可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)都是极为不安全的,并且会使用明文传送密码。

OpenSSH软件包,提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。

安装包

OpenSSH服务需要4个软件包

1 [[email protected]_C ~]# ls /mnt/Packages/openssh*
2 /mnt/Packages/openssh-5.3p1-94.el6.x86_64.rpm          /mnt/Packages/openssh-clients-5.3p1-94.el6.x86_64.rpm
3 /mnt/Packages/openssh-askpass-5.3p1-94.el6.x86_64.rpm  /mnt/Packages/openssh-server-5.3p1-94.el6.x86_64.rpm

每个软件包的作用:

openssh-5.3p1-94.el6.x86_64.rpm    包含OpenSSH服务器及客户端需要的核心文件

openssh-clients-5.3p1-94.el6.x86_64.rpm    OpenSSH客户端软件包

openssh-server-5.3p1-94.el6.x86_64.rpm    OpenSSH服务器软件包

查看软件包的详情:

 1 [[email protected]_C ~]# rpm -qpi /mnt/Packages/openssh-server-5.3p1-94.el6.x86_64.rpm
 2 warning: /mnt/Packages/openssh-server-5.3p1-94.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
 3 Name        : openssh-server               Relocations: (not relocatable)
 4 Version     : 5.3p1                             Vendor: Red Hat, Inc.
 5 Release     : 94.el6                        Build Date: Mon 30 Sep 2013 03:08:20 PM CST
 6 Install Date: (not installed)               Build Host: x86-022.build.eng.bos.redhat.com
 7 Group       : System Environment/Daemons    Source RPM: openssh-5.3p1-94.el6.src.rpm
 8 Size        : 689757                           License: BSD
 9 Signature   : RSA/8, Mon 28 Oct 2013 03:12:04 PM CST, Key ID 199e2f91fd431d51
10 Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
11 URL         : http://www.openssh.com/portable.html
12 Summary     : An open source SSH server daemon
13 Description :
14 OpenSSH is a free version of SSH (Secure SHell), a program for logging
15 into and executing commands on a remote machine. This package contains
16 the secure shell daemon (sshd). The sshd daemon allows SSH clients to
17 securely connect to your SSH server.

OpenSSH配置文件

OpenSSH常用配置文件有两个/etc/ssh/ssh_config 和 /etc/ssh/sshd_config

ssh_config 为客户端配置文件

sshd_config 为服务端配置文件

服务启动和关闭

方法1:[[email protected]_C ~]# service sshd start | restart | stop | status | reload

方法2:[[email protected]_C ~]# /etc/init.d/sshd start | restart | stop | status | reload

服务开机自启和关闭

1 [[email protected]_C ~]# chkconfig sshd on | off
2 [[email protected]_C ~]# chkconfig --list sshd
3 sshd               0:off    1:off    2:on    3:on    4:on    5:on    6:off

SSH远程登录

方法1:ssh  [远程主机用户名]@[远程服务器主机名或IP地址]

1 [[email protected]_C ~]# ssh 10.0.0.15            #如果用root进行登录远程主机可以省略用户名
2 The authenticity of host ‘10.0.0.15 (10.0.0.15)‘ can‘t be established.
3 RSA key fingerprint is e9:1f:3a:40:e9:79:a9:33:ff:b9:37:23:a6:1f:70:29.
4 Are you sure you want to continue connecting (yes/no)? yes     #填入完整的“yes”,而不是Y或y而已
5 Warning: Permanently added ‘10.0.0.15‘ (RSA) to the list of known hosts.
6 [email protected]10.0.0.15‘s password:
7 Last login: Thu May 19 11:25:32 2016 from 10.0.0.1
8 [[email protected]_S ~]#          #已经登录到lin_S端

方法2:ssh -l [远程主机用户名] [远程服务器主机名或IP地址]

1 [[email protected]_C ~]# ssh -l root 10.0.0.15     #这里的用户名root不能省略
2 The authenticity of host ‘10.0.0.15 (10.0.0.15)‘ can‘t be established.
3 RSA key fingerprint is e9:1f:3a:40:e9:79:a9:33:ff:b9:37:23:a6:1f:70:29.
4 Are you sure you want to continue connecting (yes/no)? yes
5 Warning: Permanently added ‘10.0.0.15‘ (RSA) to the list of known hosts.
6 [email protected]10.0.0.15‘s password:
7 Last login: Thu May 19 13:53:19 2016 from 10.0.0.1
8 [[email protected]_S ~]#         #已经登录到lin_S端

创建普通用户

1 [[email protected]_S ~]# useradd linypwb
2 [[email protected]_S ~]# echo 123456 |passwd --stdin linypwb
3 Changing password for user linypwb.
4 passwd: all authentication tokens updated successfully.

设置主机名

1 [[email protected]_C ~]# vi /etc/hosts
2 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
3 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
4 10.0.0.15 lin_S lin_S     

远程但不登入,直接执行命令

方法1:ssh  [远程主机用户名]@[远程服务器主机名或IP地址] [命令]

方法2:ssh -l [远程主机用户名] [远程服务器主机名或IP地址] [命令]

1 [[email protected]_C ~]# ssh [email protected]_S date
2 [email protected]_s‘s password:
3 Thu May 19 14:37:38 CST 2016
4 [[email protected]_C ~]#                #身份还是root,只是以linypwb的身份在远程主机上执行了一个命令而已

Server Keys记录数据

第一次登录服务器时系统没有保存远程主机的信息,为了确认该主机身份会提示用户是否继续连接,输入yes后登录,这时系统会将远程服务器信息写入用户主目录下的$HOME/.ssh/known_hosts文件中,下次再进行登录时因为保存有该主机信息就不会再提示了。

1 [[email protected]_C ~]# vi .ssh/known_hosts
2 lin_s ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAmdWhFkQGgpPhjELJnP5+G6OEJ5+dS3EbISKrctYbxd82USSnYyqiWcxOb7IpMoVltvyvciwf8/6B666fkNAW7WDR89afGL6yrwC8+PB3fwkSg9RPyZw4qGoEGoP/Z5LNa8MzYHf+98pzZ9VllmWUpDkP9lkhqeSMdIRxP5WyK9z1HRdE9N+KbIKjpJBvchchyaBYgwOWArF8Joyz0tyRpf48iXu5/8fizNNWnHNvC6IZDRqu8DdphGyAFPksW/1DXN5eSmMYbPo2R2OGEfEvdt3xSSsoK2Vws6osFma19E7tb2zd4BTmOYiLJtgmzVkGFdgk5a/q4jgWHTdi6C+wjw==

SSHD 服务配置文件

注:参数前面有#,表示是默认值,也表示注释。

备份配置文件

1 [[email protected]_S ~]# cp /etc/ssh/sshd_config{,.bak}      #修改配置文件前,尽量备份文件,以便出错能够及时恢复

 

/etc/ssh/sshd_config 配置文件    P1149

1)#Port 22

# SSH 预设使用 22 这个 port,也可以使用多个 port,即重复使用 port 这个设定项目!

#例如想要开放 sshd 端口为 22 和 222,则多加一行内容为: Port 222  即可

#然后重新启动 sshd 这样就好了。建议大家修改 port number 为其它端口,防止别人暴力破解。

例:修改 sshd 服务监听的端口为22和222

 1 [[email protected]_S ~]# vi /etc/ssh/sshd_config
 2 ...
 3 #Port 22
 4 Port 22                         #监听端口22
 5 Port 222                        #监听端口222
 6 #AddressFamily any
 7 #ListenAddress 0.0.0.0
 8 #ListenAddress ::
 9 ...
10 [[email protected]_S ~]# service sshd restart         #重启sshd服务
11 Stopping sshd:                                             [  OK  ]
12 Starting sshd:                                             [  OK  ]
13 [[email protected]_S ~]# netstat -anptu |grep ssh     #查看sshd监听端口
14 tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      3549/sshd
15 tcp        0      0 0.0.0.0:222                 0.0.0.0:*                   LISTEN      3549/sshd
16 tcp        0     52 10.0.0.15:22                10.0.0.1:57030              ESTABLISHED 2574/sshd
17 tcp        0      0 :::22                       :::*                        LISTEN      3549/sshd
18 tcp        0      0 :::222                      :::*                        LISTEN      3549/sshd       

指定port来远程登录

方法1:ssh  [远程主机用户名]@[远程服务器主机名或IP地址] -p [port]

方法2:ssh -p [port] [远程主机用户名]@[远程服务器主机名或IP地址]

1 [[email protected]_C ~]# ssh lin_S -p 222         #如果用root进行登录远程主机可以省略用户名
2 [email protected]_s‘s password:
3 Last login: Thu May 19 14:31:03 2016 from 10.0.0.16
4 [[email protected]_S ~]#                          #已经登录到lin_S端

 

2)#ListenAddress 0.0.0.0

#设置 sshd 监听的主机适配卡 IP 地址。0.0.0.0 表示侦听所有地址

#例子:如果有两个 IP (网卡),分别是10.0.0.14 及10.0.0.15 ,那么只想要开放10.0.0.14 时,就可以写如同下面的样式:

ListenAddress 10.0.0.14

#只监听来自10.0.0.14 这个 IP 的 ssh 联机。

例:添加一块网卡,设置只监听新增的这块网卡

1、虚拟机内添加网卡

2、编辑新增网卡信息,并重启网络服务

 1 [[email protected]_S ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth1        #编辑网卡信息,以下均为必要项
 2 DEVICE=eth1
 3 ONBOOT=yes
 4 BOOTPROTO=static
 5 IPADDR=10.0.0.14
 6 PREFIX=24
 7 GATEWAY=10.0.0.1
 8 DNS1=8.8.8.8
 9 NETMASK=255.255.255.0
10 [[email protected]_S ~]# service network restart            #重启网络服务
11 Shutting down interface eth0:                              [  OK  ]
12 Shutting down loopback interface:                          [  OK  ]
13 Bringing up loopback interface:                            [  OK  ]
14 Bringing up interface eth0:  Determining if ip address 10.0.0.15 is already in use for device eth0...
15                                                            [  OK  ]
16 Bringing up interface eth1:  Determining if ip address 10.0.0.14 is already in use for device eth1...
17                                                            [  OK  ]

3、修改配置监听 IP,并重启 sshd 服务

 1 [[email protected]_S ~]# vi /etc/ssh/sshd_config           #修改监听IP
 2 ...
 3 #Port 22
 4 #AddressFamily any
 5 #ListenAddress 0.0.0.0
 6 ListenAddress 10.0.0.14
 7 #ListenAddress ::
 8 ...
 9 [[email protected]_S ~]# service sshd restart              #重启ssh服务
10 Stopping sshd:                                             [  OK  ]
11 Starting sshd:                                             [  OK  ]
12 [[email protected]_S ~]# netstat -anptu |grep sshd         #查看监听情况
13 tcp        0      0 10.0.0.14:22                0.0.0.0:*                   LISTEN      4284/sshd           

4、lin_C 客户端远程测试

 1 [[email protected]_C ~]# ssh lin_S
 2 ssh: connect to host lin_S port 22: Connection refused    #提示拒绝连接
 3 [[email protected]_C ~]# ssh 10.0.0.14                            #连接监听IP则可以
 4 The authenticity of host ‘10.0.0.14 (10.0.0.14)‘ can‘t be established.
 5 RSA key fingerprint is e9:1f:3a:40:e9:79:a9:33:ff:b9:37:23:a6:1f:70:29.
 6 Are you sure you want to continue connecting (yes/no)? yes
 7 Warning: Permanently added ‘10.0.0.14‘ (RSA) to the list of known hosts.
 8 [email protected]10.0.0.17‘s password:
 9 Last login: Thu May 19 16:18:50 2016
10 [[email protected]_S ~]#                         #已经登录到lin_S

 3)Protocal 2

#选择的 SSH 协议版本,可以是1也可以是2,CentOS5.x预设是仅支援V2

#如果要同时支持两者,就必须要使用 2,1 这个分隔了(Protocal 2,1)!

1 [[email protected]_S ~]# vi /etc/ssh/sshd_config
2 #Protocol 2
3 Protocol 2,1

4)Pricate Key

说明主机的 Private Key 放置的档案,预设使用下面的档案即可!

1 # HostKey for protocol version 1
2 #HostKey /etc/ssh/ssh_host_key        #SSH v1使用的私钥
3 # HostKeys for protocol version 2
4 #HostKey /etc/ssh/ssh_host_rsa_key    #SSH v2使用的RSA私钥
5 #HostKey /etc/ssh/ssh_host_dsa_key    #SSH v2使用的DSA私钥

5)SyslogFacility AUTHPRIV

关于登录文件的讯息数据放置与 daemon 的名称!

# 当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV。

#查看日志配置文件,得知:sshd服务日志存放在:/var/log/secure

1 [[email protected]_S ~]# vim /etc/rsyslog.conf
2 # The authpriv file has restricted access.
3 authpriv.*                                              /var/log/secure

6)#LogLevel INFO

# 登录记录的等级!INFO级别以上。

7)#ServerKeyBits 1024

# 定义Server key 的长度,默认是1024

8)安全设定项

1 #PermitRootLogin yes          #是否允许root登入!预设是允许的,但是建议设定成no!
2 #PermitEmptyPasswords no      #若上面那一项设定为yes的话,这一项就最好设定为no  这个项目在是否允许以空的密码登入!当然不允许!
3 #PasswordAuthentication yes   #是否允许使用密码验证,默认为允许
4 #StrictModes yes              #当使用者的 host key 改变之后,Server 就不接受联机,可以抵挡部分的木马程序!
5 #PubkeyAuthentication yes     #是否允许Public Key?当然允许啦!仅针对version 2

#LoginGraceTime 2m        #grace 优雅

# 当使用者连上 SSH server 之后,会出现输入密码的画面,在该画面中,

# 在多久时间内没有成功连上 SSH server 就强迫断线!若无单位则默认时间为秒!

例:将LoginGraceTime 2m  改为:LoginGraceTime 5

1 [[email protected]_C ~]# ssh lin_S
2 [email protected]_s‘s password:       #停留5秒后,再次输入,结果断开
3 Connection closed by lin_S

#PrintMotd yes

打印出/etc/motd 这个文档的内容。

例:/etc/motd写入内容,客户端远程测试效果

1 [[email protected]_S ~]# echo "欢迎登录本系统,所有操作都将有记录" > /etc/motd
2 [[email protected]_C ~]# ssh lin_S        #在lin_C 客户端测试访问lin_S
3 [email protected]_s‘s password:
4 Last login: Thu May 19 17:59:06 2016 from 10.0.0.16
5 欢迎登录本系统,所有操作都将有记录    #打印出了/etc/motd 中的内容
6 [[email protected]_S ~]# 

# PrintLastLog yes

# 显示上次登入的信息!预设也是 yes!

Last login: Wed Mar 23 22:12:58 2016 from 192.168.1.100

#改:PrintLastLog yes 为:PrintLastLog no 就不显示这个信息

时间: 2024-10-11 00:56:18

SSH基本管理和配置文件的使用的相关文章

7)SSH批量管理分发项目

ssh服务认证类型介绍 从SSH客户端来看,SSH服务主要提供两种级别的安全验证,具体级别如下: 基于口令的安全验证: 基于口令的安全验证的方式就是大家一直在用的,只要知道服务器的SSH连接账号和口令,应用服务器的IP及开放的端口,默认为22,就可以通过SSH客户端登录到这台远程主机.此时,联机过程中所有传输的数据都是加密的. 基于口令的我们可以通过expect,pssh,sshpass实现批量管理. 期中集群:一键搭建及优化50台服务器集群 基于密钥的安全验证: 基于密钥的安全验证方式是指,需

SSH远程管理、参数讲解、xshell使用、scp,sftp,ssh命令(ssh两种方式的密钥验证方

1.SSH远程管理 SSH(Secure Sheel)是一种安全通道协议,主要用于实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户的口令.与早期的TELNET(远程登录,tcp23端口).RSH(Remote Sheel,远程执行命令).RCP(Remote File Copy,远程文件复制)等应用想必,SSH协议提供了更好的安全性. 配置OpenSSH服务端(由openssh.openssh-server软件包提供.主配置文件/etc/ssh/

【转】同一台电脑关于多个SSH KEY管理

原文链接 http://yijiebuyi.com/blog/f18d38eb7cfee860c117d629fdb16faf.html 使用环境:关于同一台电脑LInux系统下使用多个SSH key 切换使用(或者多用户使用ssh提交代码) 要求,可以创建不同的 PUBLIC KEY ,根据下面步骤设置. (1)比如有aaa,bbb,ccc 三个帐号需要生成不同的 PUBLIC KEY $ ssh-keygen -t rsa Generating public/private rsa key 

Linux环境下实现SSH远程管理

what 什么是SSH? SSH(Secure Shell)是一种安全通信协议,主要用来实现字符界面的远程登录.远程复制等功能.OpenSSH是实现SSH协议的开源项目 why 为什么要学习SSH,它与其他远程协议的区别在哪里? SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令.与早期的TELNET.RSH.PCR远程应用相比,SSH协议提供了更好的安全性. where SSH适合应用在哪里? 基于C/S架构,适合以部署OpenSSH服务器和客户端,实现远程连接.控

Git安装及SSH Key管理之Windows篇

一.安装环境 1.本机系统:Windows 10 Pro(64位)2.Git版本:Git-2.11.0-64-bit.exe(64位) 二.Git安装 去官网下载完后一路下一步完成安装,如下图: 安装完后先在系统环境变量中看下是否配置 然后在桌面右击鼠标,选择Git bash here,然后输入下面代码: git --version #验证git是否安装成功,输出版本号就代表安装成功 如下图: 安装完成有配置一下全局的用户名和邮箱,输入如下命令: git config --global user

Linux服务器ssh远程管理

SSH远程管理 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登陆,远程复制等功能.SSH协议对通信双方的数据传输进行了加密处理,其中包括用户登陆时输入的用户口令,与早期的telnet(远程管理),rsh(Remote Shell ,远程执行命令),rcp(远程复制文件)等应用相比,SSH协议提供了更好的安全性. 配置OpenSSH服务端 在RHEL 5系统中,OpenSSH服务器由openssh,openssh-server等软件包提供(默认已安装),并已将s

windows服务器搭建gitblit环境及github多用户的ssh key管理

// 因为项目需要,要搭建git服务器,顺便解决了ssh key的问题,做个笔记 一.windows服务器搭建gitblit 1.下载java http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html (先装了java9,启动gitblit.cmd报错,又换成了1.8.1的jdk) 报错如下,没懂〒▽〒 java.lang.ClassCastException: java.base/jd

SSH远程管理服务

作者:Georgekai 归档:学习笔记 2018/1/29 SSH远程管理服务 1.1 SSH服务介绍说明 Secure shell protocol--安全的shell协议 SSH:先对要传输的数据包进行加密处理,然后在进行数据传输,确保了数据的安全 telnet:用于远程连接控制,但不对数据传输进行加密 1.1.1 SSH服务主要提供的两个功能: 1. 远程连接 2. 远程文件传输:如sftp 1.1.2 SSH连接排错思路 1. ping 172.16.1.41 traceroute 1

Web集群之SSH批量管理

1.什么是SSH批量管理在管理机产生公钥和私钥,然后把自己的公钥推送给需要被管理的服务器,然后就可以通过scp和ssh命令,无需输入密码即可管理 锁=公钥,钥匙=私钥 企业里实现ssh方案:1)直接root ssh key.条件:系统允许root使用ssh2)sudo提权来实现没有权限用户拷贝 实验环境: hostname ip 描述 m01 172.16.1.61 管理机 web01 172.16.1.7 被管理 nfs 172.16.1.31 被管理 backup 172.16.1.41 被