linux xshell5 ssh 证书远程登录配置、添加用户ssh配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010363836/article/details/51585565


第一步添加用户:

方法一:wget http://localhost/adduser.sh -O key.sh; /bin/sh key.sh testusername; rm -f key.sh


方法二:直接上传key.sh 后执行

/bin/sh key.sh testusername; rm -f key.sh


key.sh脚本文件:注意:脚本文件里的链接 http://localhost/soft/ssh/$1.key  是生成的密钥证书(可有,可无),

没有的话就要自己自行将生成的密钥内容复制到

/home/$1/.ssh/目录下的 authorized_keys文件中(注意复制时前面可能会少个字母,对比下复制前后内容是否一致,小编在这里被坑了半天)


if [ $# -eq 1 ];then /usr/sbin/userdel $1; /usr/sbin/groupdel $1; /usr/sbin/useradd -g users $1; /usr/bin/passwd -u $1; /usr/bin/passwd -u -f $1; /usr/bin/passwd -d $1; /usr/bin/passwd -uf $1; mkdir /home/$1 mkdir /home/$1/.ssh; wget http://localhost:8080/soft/ssh/$1.key -O /home/$1/$1.key cat /home/$1/$1.key > /home/$1/.ssh/authorized_keys; chown -R $1 /home/$1; chgrp -R users /home/$1; chmod 700 /home/$1; chmod 700 /home/$1/.ssh; chmod 600 /home/$1/.ssh/*; chown -R $1 /home/$1/.ssh; rm -f /home/$1/$1.key; fi


下面这段shell有隐藏字符,可能运行不了,其实与上面的一样的,仅供阅读

if [ $# -eq 1 ];then
/usr/sbin/userdel $1;
/usr/sbin/groupdel $1;
/usr/sbin/useradd -g users $1;
/usr/bin/passwd -u $1;
/usr/bin/passwd -u -f $1;
/usr/bin/passwd -d $1;
/usr/bin/passwd -uf $1;
mkdir /home/$1
mkdir /home/$1/.ssh;
wget http://localhost/soft/ssh/$1.key -O /home/$1/$1.key
cat /home/$1/$1.key > /home/$1/.ssh/authorized_keys;
chown -R $1 /home/$1;
chgrp -R users /home/$1;
chmod 700 /home/$1;
chmod 700 /home/$1/.ssh;
chmod 600 /home/$1/.ssh/*;
chown -R $1 /home/$1/.ssh;
rm -f /home/$1/$1.key;
fi


第二步制作密钥

方法一:使用xshell 工具制作:

具体步骤就不介绍了,自己网上搜索一大堆

在Xshell -----工具-----新建用户密钥生成向导

生成的密钥内容格式是这样的:

 ssh-dss AAAAB3NzaC1kc3MAAACBAJH9syp+JSnLuXZfaxtrzXk+r22e304SrneEA7NjVpPmF0IsY8SDS/6OBz9nJ3U6PugzDUXkYWHwtOQ0Z27FdFoepBgxGWF7lK8648oNgYD6H9ia3QelEgpWvoiyQV6MIuG7weytYHrZwQyjIyyVmJ7l0TodPmZ9XZmfTnReOF+1AAAAFQC+JVWUSThkbhGUJGw6i3/Md4zDgQAAAIAkaJEMIo2UoJZBXVFUwjifvaN4E38kftReRrmAaOh5xCZdp3kUhmFxayOyGHEkeekU5I18wOk+83O/w/j3KWutaGsZaGa/ujuMSBkc5NwjVPBlvSp0VIuJ2c2CNz0ksAHNUrRkVwYlkk/PTlza8GSZSfGKQ1gRwlnHxGiCrZ5NmwAAAIBMs0LgF++IcjzK1z6rIvMYba0V/UNe77bN+l10cfDv0DI7zbVfucWWjvrUAhxPIqLXVCoFPOesow8D36blNj0xcbogz+LbAux2da4o/V9bJobKyLVHqTH2MnxnZOhTwvPK76u+Qzzk00kiPGzTaIldG0OKebRnpDMeZkJuFkJtRA==

方法二使用ssh命令制作:

2、ssh-keygen -t [rsa|dsa],将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub
3、将 .pub 文件复制到B机器的 .ssh 目录, 并 cat id_dsa.pub >> ~/.ssh/authorized_keys
4、大功告成,从A机器登录B机器的目标账户,不再需要密码了;

[root@localhost .ssh]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):

把生成好的密钥

复制到/home/$1/.ssh/目录下的 authorized_keys文件中


第三步修改 ssh配置文件:

//查看系统版本
[root@localhost cat /etc/redhat-release

//修改ssh配置  增加一个ssh端口
[root@localhost ssh]# vi sshd_config

修改sshd_config配置文件

vi /etc/ssh/sshd_config 
PubkeyAuthentication yes    #启用公告密钥配对认证方式 
AuthorizedKeysFile .ssh/authorized_keys     #设定PublicKey文件路径
RSAAuthentication yes  #允许RSA密钥
PasswordAuthentication no #禁止密码验证登录,如果启用的话,RSA认证登录就没有意义了

#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no


重新加载sshd服务: /etc/init.d/sshd restart 

//重启ssh服务
[root@localhost ssh]# /etc/init.d/sshd restart

查看日志:

  tail -f /var/log/secure 也没有相应的错误日志


在ssh配置文件增加了端口,还要把端口开放出来:

开放端口:
LINUX通过下面的命令可以开启允许对外访问的网络端口: 

/sbin/iptables -I INPUT -p tcp --dport 18834 -j ACCEPT #开启18834端口 

/etc/rc.d/init.d/iptables save #保存配置 

/etc/rc.d/init.d/iptables restart #重启服务 

查看端口是否已经开放 

/etc/init.d/iptables status


参考命令配置:
vim /etc/ssh/sshd_config
#禁用root账户登录,非必要,但为了安全性,请配置
PermitRootLogin no


# 是否让 sshd 去检查用户家目录或相关档案的权限数据,
# 这是为了担心使用者将某些重要档案的权限设错,可能会导致一些问题所致。
# 例如使用者的 ~.ssh/ 权限设错时,某些特殊情况下会不许用户登入
StrictModes no


# 是否允许用户自行使用成对的密钥系统进行登入行为,仅针对 version 2。
# 至于自制的公钥数据就放置于用户家目录下的 .ssh/authorized_keys 内
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

#有了证书登录了,就禁用密码登录吧,安全要紧
PasswordAuthentication no

第四步测试:测试了连个用户测试通过

猜你喜欢

转载自blog.csdn.net/u010363836/article/details/51585565
今日推荐