首页 > 代码库 > (干货)ssh服务安全优化及批量分发

(干货)ssh服务安全优化及批量分发

一键修改ssh参数(修改端口6666、禁止root登入和空密码、加速ssh连接)

sed -ir ‘13 iPort 6666\nPermitRootLogin no\nPermitEmptyPasswords no\nUseDNS no\nGSSAPIAuthentication no‘ /etc/ssh/sshd_config 

查看sed -n ‘13,17p‘ /etc/ssh/sshd_config 修改结果

/etc/init.d/sshd restart 


实验环境:机器6台,一台ip192.168.169.10做主分发机器,其余ip192.168.169.11-15做被分发机器

机器全部开启,可以做一个securtCRT交谈会话窗口一键执行添加用户

cat ~/.ssh/known_hosts 访问过的公钥记录

rm -f ~/.ssh/known_hosts 

服务器批量创建用户及密码

useradd jiege

echo 123456|passwd --stdin jiege

id jiege

su - jiege


10创建密钥对

su - jiege

ssh-keygen -t dsa 一路回车

ll /home/jiege/.ssh/  查看生成文件

-rw------- 1 jiege jiege 668 Jun 22 22:38 id_dsa  #私钥,权限为600,保留本地,私

钥为钥匙

-rw-r--r-- 1 jiege jiege 599 Jun 22 22:38 id_dsa.pub  #公钥,权限为644,分发给其

他主机,公钥为锁

#ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa >/dev/null 2>&1


10分发公钥

默认端口22

ssh-copy-id -i .ssh/id_dsa.pub "jiege@192.168.169.11"

更改过的ssh端口6666

ssh-copy-id -i .ssh/id_dsa.pub "-p 6666 jiege@192.168.169.11"

ssh-copy-id -i .ssh/id_dsa.pub "-p 6666 jiege@192.168.169.12"

ssh-copy-id -i .ssh/id_dsa.pub "-p 6666 jiege@192.168.169.13"

ssh-copy-id -i .ssh/id_dsa.pub "-p 6666 jiege@192.168.169.14"

ssh-copy-id -i .ssh/id_dsa.pub "-p 6666 jiege@192.168.169.15"

.ssh/authorized_keys                    #出现这个表示推送公钥成功

测试ssh不要密码即成功


企业里实现ssh cp没权限方案

1直接root ssh key

条件:允许root ssh登入

2sudo提权实现拷贝没有权限的用户拷贝

root   ALL=(ALL)       ALL

jiege  ALL=(ALL)       NOPASSWD:/bin/cp  #在98行后加入这一行内容,给予jiege用户

执行/bin/cp命令的权限,sudo提权

echo "jiege  ALL=(ALL)       NOPASSWD:/bin/cp" >>/etc/sudoers

visudo -c 检查语法错误

远程sudo方法

ssh -p6666 -t jiege@192.168.169.11 sudo /bin/cp ~/hosts /etc/hosts

visudo

#You have to run "ssh -t hostname sudo <cmd>".  #远程执行sudo方法一加-t

Defaults   requiretty                #远程执行sudo方法二,直接注释掉此行内容

3利用suid实现没有权限的用户拷贝(思维扩展了解一般不采用不安全)

which cp

/bin/cp

chmod 4755 `which cp` 

chmod u+s `which cp`   

chmod u+s $(which cp)  

ssh  jiege@192.168.169.12 /bin/cp ~/hosts /etc/

chmod u-s $(which cp)  #权限去掉


ssh批量分发脚本(需自定义源文件和目标目录)

vi fenfa_file.sh

#/bin/sh

#piliangfenfajiaoben,2017-06-23 by jiege

if [ $# -ne 2 ]:then

    echo "USAGE:/bin/sh $0 ARG1 ARG2"

    exit 1

. /etc/init.d/functions

for n in 11 12 13 14 15

do

      scp -P6666 -rp ~/$1 jiege@192.168.169.$n:~ >/dev/null 2>$1&&\

      ssh -p6666 -t jiege@192.168.169.$n sudo/bin/cp ~/$1 $2 >/dev/null 2>$1

      if [ $? -eq 0 ]:then

          action "fenfa hosts 192.168.169.$n" /bin/ture

      else

          action "fenfa hosts 192.168.169.$n" /bin/false

done


ssh批量查看执行命令

vi allview.sh

#/bin/sh

if [ $# -ne 1 ]:then

    echo "USAGE:/bin/sh $0 ARG1"

    exit 1

fi

for n in 11 12 13 14 15

do

  echo ========192.168.169.$n=========

  ssh -p6666 jiege@192.168.169.$n "$1"

done


附上ssh应用方案

【远程连接及执行命令】

ssh -p22 root@10.0.0.19

ssh -p22 root@10.0.0.19 /sbin/ifconfig

【远程拷贝:推送及拉取】

推push scp -P22 -r -p /etc root@10.0.0.19:/tmp   -p拷贝前后保持文件或目录的属性 

拉pull scp -P22 -r -p root@10.0.0.19:/tmp/ /etc  -r递归

【安全的FTP功能】

sftp -oPort=22 root@10.0.0.19

【无密码验证方案】

例如利用sshkey批量分发文件,执行部署操作。


本文出自 “叔叔,这个黑锅我不背” 博客,请务必保留此出处http://jiege3324.blog.51cto.com/11639123/1941278

(干货)ssh服务安全优化及批量分发