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

sshd服务使用SSH协议可以用来进行远程控制, 或在计算机之间传送文件

安装
yum -y install openssh openssh-clients openssh-server openssh-askpass SSH

配置文件
常用配置文件有两个/etc/ssh/ssh_config 和/etc/ssh/sshd_config
sshconfig 为客户端配置文件 sshdconfig 为服务器端配置文件

启动sshd
service sshd start
service sshd stop
service sshd restart

设置开机自启动
chkconfig sshd on
chkconfig --list sshd

systemctl
开启服务 : systemctl start sshd
关闭服务: systemctl stop sshd
查看服务的状态: systemctl status sshd
重启服务: systemctl restart sshd
设定服务开机启动: systemctl enable sshd
设定服务开机不启动: systemctl disable sshd
重新加载服务的配置文件: systemctl reload sshd
锁定服务: systemctl mask sshd
解锁服务: systemctl unmask sshd
开机启动图形:systemctl set-default graphical.target
开机不启动图形: systemctl set-default multi-user.target

使用ssh来远程连接主机
ssh [远程主机用户名] @[远程服务器主机名或IP地址]

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

若没有使用默认端口号
ssh -p [服务器sshd监听的端口号] [远程主机用户名] @[远程服务器主机名或IP地址]

如:
ssh 192.168.1.101
ssh user1@192.168.1.101
缺省用户名表示使用root用户登录

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

使用ssh进行文件传输

1、上传本地文件到服务器
scp /path/filename username@servername:/path/
例如scp /var/www/test.php root@192.168.0.101:/var/www/ 把本机/var/www/目录下的test.php文件上传到192.168.0.101这台服务器上的/var/www/目录中

2、从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)
例如scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)

3、从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
例如:scp -r root@192.168.0.101:/var/www/test /var/www/

4、上传目录到服务器
scp -r local_dir username@servername:remote_dir
例如:scp -r test root@192.168.0.101:/var/www/ 把当前目录下的test目录上传到服务器的/var/www/ 目录

使用 scp 命令若需要指定sshd服务的端口,使用 scp -P [port] ...

--------------------------------------------------------------------------------------------------
sshd_config配置文件详解

Port 22
设置sshd 监听端口号 注释: SSH 预设使用 22,也可以使用多个port,即重复使用 port 这个设定项目! 例如想要开放 sshd
端口为 22和 2200 ,则多加一行内容为: Port 2200 即可 然后重新启动 sshd 这样就好了。 建议大家修改 port
number 为其它端口。防止别人暴力破解。

ListenAddress 0.0.0.0 设置sshd 服务器绑定的IP 地址,0.0.0.0 表示侦听所有地址 比如192.168.100.155这个机器只允许100.155来远程登录,那么可以设置
ListenAddress 192.168.100.155

Protocol 2 选择的 SSH 协议版本,可以是 1 也可以是 2 ,CentOS 5.x 预设是仅支援 V2。 安全考虑,设置为最新的协议版本

SyslogFacility AUTHPRIV 当有人使用 SSH 登入系统的时候,SSH 会记录信息,这个信息要记录的类型为AUTHPRIV。 登录系统的默认日志存/var/log/secure

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

LoginGraceTime 2m 当使用者连上 SSH server 之后,会出现输入密码的画面,在该画面中,
在多久时间内没有成功连上 SSH server
就强迫断线!若无单位则默认时间为秒! 可以根据实际情况来修改实际

PermitRootLogin yes 是否允许 root 登入!预设是允许的,但是建议设定成 no !
真实的生产环境服务器,是不允许root账号登陆的!!!

PasswordAuthentication yes 密码验证当然是需要的!所以这里写 yes,也可以设置为no
在真实的生产服务器上,根据不同安全级别要求,有的是设置不需要密码登陆的,通过认证的秘钥来登陆

PermitEmptyPasswords no 若上面那一项如果设定为 yes 的话,这一项就最好设定为 no
这个项目在是否允许以空的密码登入!当然不许!

PrintMotd yes 登入后是否显示出一些信息呢?例如上次登入的时间、地点等等,预设是 yes
亦即是打印出 /etc/motd 这个文档的内容 给sshd服务添加一些警告信息
cat /etc/motd
echo 'Warning ! From now on, all of your operation has been 4record!' > /etc/motd PrintLastLog yes 显示上次登入的信息!预设也是 yes!

UseDNS yes 一般来说,为了要判断客户端来源是正常合法的,因此会使用 DNS 去反查客户端的主机名
不过如果是在内网互连,这项目设定为 no会让联机速度比较快

转载于:https://my.oschina.net/mengzhang6/blog/1833207

Logo

更多推荐