CentOS修改ssh端口号及ssh免密码登录

CentOS修改ssh端口号及ssh免密码登录,第1张

一般ssh的默认端口为22
比如正常使用终端登录局域网电脑

注意是 sshd_config 文件

在#Port 22行去掉#号注释,同时加入想要使用的端口号如 Port 22438

这里保留22端口是为了防止当前无法使用ssh登录

成功返回success
重启防火墙:

成功返回success
查看添加端口是否成功,成功则显示yes,否则为no:

查看本机SELinux状态,如果是关闭则可以跳过此步骤

以下使用semanage *** 作,没有可以使用以下命令安装:

以下命令为查看当前SELinux允许的ssh端口:

添加22438端口到SELinux,并确认

测试新端口ssh连接

可以正常登录即成功

将之前开放的Port 22一行注释掉并保存

然后重启ssh

使用以下命令无法登录服务器

本机终端输入:

配置相关全部直接回车
在~/ssh/目录下生成两个文件

在本机终端输入:

在本机将认证文件复制到服务器

如果服务器上没有文件夹就新建一个ssh/文件夹

Enjoy

一 SSH命令使用技巧- 远程登录

ssh user@remotemachine

- 远程执行

ssh user@remotemachine 'command '

- 远程复制

scp user@remotemachine:/remote/path /local/path

scp /local/path user@remotemachine:/remote/path

- X forward

ssh -X user@remotemachine

xcommand

- Tunnel / Portforward

ssh -L 1234:remotemachine:4321 user@remotemachine

ssh -R 1234:localmachine:4321 user@remotemachine

ssh -L 1234:othermachine:4321 user@remotemachine

二, 实作1) 禁止 root 登录

# vi /etc/ssh/sshd_config

PermitRootLogin no

2) 废除密码登录, 强迫使用 RSA 验证(假设 ssh 账户为 user1 )

# vi /etc/ssh/sshd_config

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile ssh/authorized_keys

PasswordAuthentication no

# service sshd restart

# su - user1

$ mkdir ~/ssh 2>/dev/null

$ chmod 700 ~/ssh

$ touch ~/ssh/authorized_keys

$ chmod 644 ~/ssh/authorized_keys

登入 端:

$ ssh-keygen -t rsa

(按三下 enter 完成﹔不需设密码,除非您会用 ssh-agent 。)

$ scp ~/ssh/id_rsapub user1@servermachine:id_rsapub

(若是 windows client, 可用 puttygenexe 产生 public key,

然后复制到 server 端后修改之, 使其内容成为单一一行)

回到 server 端:

$ cat ~/id_rsapub >> ~/ssh/authorized_keys

$ rm ~/id_rsapub

$ exit

3) 限制 su / sudo 名单:

# vi /etc/pamd/su

auth required /lib/security/$ISA/pam_wheelso use_uid

# visudo

%wheel ALL=(ALL) ALL

# gpasswd -a user1 wheel

4) 限制 ssh 使用者名单

# vi /etc/pamd/sshd

auth required pam_listfileso item=user sense=allow file=/etc/ssh_users ōnerr=fail

# echo user1 >> /etc/ssh_users

阿里云主机ssh 免密码登录

*** 作系统: CentOS 70 64位

CPU: 1 核

公网IP: 781292345

用户名: root

密码:bugaosuni

我在VMware下安装的Ubuntu 1404本文的主要目的就是在Ubuntu上能够免密码登录云主机。

具体设置步骤

Ubuntu 客户端

在该文件夹下就会产生三个文件夹:id_rsa,id_rsapub,know_hosts。

id_rsa:存储私钥,记得只能自己看哦。别人那到这个文件就完蛋蛋咯。

id_rsapub:存储公钥,用来通信加密使用,有了这个人家才能确定这是你。

scp id_ rsapub root@781292345:/root/ssh/id_ rsapub

Note:云主机上没有ssh/文件时,你要自己建立一个。

云主机端

rm id_rsapub

Ubuntu 客户端

这个时候就可以登录云主机了

ssh root@781292345

scp远程拷贝文件时提示错误:

Warning: Permanently added '1000182' (RSA) to the list of known hosts

Permission denied (publickey)

解决:

登录1000182,将/etc/ssh/sshd_config文件中的PasswordAuthentication no 改为PasswordAuthentication yes

重启sshd服务:/etc/initd/sshd restart

问题解决。

原因:scp是基于ssh的拷贝服务,ssh在没有密钥登录的情况下,禁用了密码登录,故出现如上错误。

服务端SSH 服务配置了禁止root用户登录策略。

处理办法

说明:相关策略可以提高服务器的安全性。请用户基于安全性和易用性权衡后,再确定是否需要修改相关配置。

要解决此问题,请进行如下配置检查和修改:

参数说明:

未配置该参数,或者将参数值配置为 yes (默认情况),都允许 root 用户登录。只有显示的设置为 no 时,才会阻断root 用户登录。

该参数只会影响用户的 SSH 登录,不影响用户通过 管理终端 等其它方式登录系统。

如果需要修改相关策略配置,在继续之前建议进行文件备份。

使用 vi 等编辑器,将参数值设置为 yes,或者整个删除或注释(在最开头添加 # 号)整行配置。比如:# PermitRootLogin yes

使用如下指令重启 SSH 服务:service sshd restart

尝试再次使用 root 用户登录服务器。

出现的问题以及解决方案

当出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic) 警告的时候,恭喜你,你已经离成功很近了。

远程主机这里设为slave2,用户为Hadoop。

本地主机设为slave1

以下都是在远程主机slave2上的配置,使得slave1可以免密码连接到slave2上。如果想免密码互联,原理一样的,在slave1上也这么配置即可!

(1)首先:配置ssh服务器配置文件。

在root 用户下才能配置。

vi /etc/ssh/sshd_config

权限设为no:

如果前面有# 号,将#号去掉,之后将yes修改为no。

修改之后为:

PermitRootLogin no

UsePAM no

PasswordAuthentication no

权限设为yes:

RSAAuthentication yes

PubkeyAuthentication yes

(2)重启sshd服务

systemctl restart sshdservice

systemctl status sshdservice #查看ssh服务的状态

正常情况下应该是Active:active(running)

(3)修改文件夹以及文件的权限。

(4)在slave1上进行测试

ssh slave2

今天处理 ssh连接至 ubuntu 服务器时,提示以下错误:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that a host key has just been changed

The fingerprint for the RSA key sent by the remote host is

da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:

Please contact your system administrator

Add correct host key in /用户home目录/ssh/known_hosts to get rid of this message

Offending RSA key in /用户home目录/ssh/known_hosts:1

RSA host key for ip地址 has changed and you have requested strict checking

Host key verification failed

经过google,出现这个问题的原因是,第一次使用SSH连接时,会生成一个认证,储存在客户端的known_hosts中。

可使用以下指令查看:

ssh-keygen -l -f ~/ssh/known_hosts

由于服务器重新安装系统了,所以会出现以上错误。

解决办法

ssh-keygen -R 服务器端的ip地址

会出现以下提示:

/用户home目录/ssh/known_hosts updated

Original contents retained as /用户home目录/ssh/known_hostsold

重新连线,出现以下提示:

The authenticity of host '192168310 (192168310)' can't be established

RSA key fingerprint is da:f7:3e:ba:f7:00:e6:44:76:f2:58:6e:48:

Are you sure you want to continue connecting (yes/no)

建立PublicKey登陆步骤其实非常简单,总结来说就是将客户端生成的的ssh public key添加到服务器的 ~/ssh/authorized_keys 文件中,即可实现ssh的免密码登录。

在客户端生成公钥密钥 附一篇 ssh-keygen 基本用法

然后一路回车, 使用默认值即可

使用 ls 命令可以看到当前目录下的文件,有了个 id_rsa 和 id_rsapub ,前者是密钥,后者是公钥。
查看公钥

复制公钥

先尝试进入 ssh 看看目录是否存在

若不存在则新建一个

然后修改权限

接着再进入ssh,然后修改将公钥添加到authorized_keys

按 i ,然后将刚刚复制的密钥粘贴到这里,按 esc ,再按 : ,输入 wq 保存并退出
接着修改权限

做好配置之后,通过ssh可以直接登录了。

我们可以利用ssh的配置文件来简化我们登陆的 *** 作
配置文件在 ~/ssh/config
我们可以修改这个文件(如果不存在则新建一个)

YourName可以改成任意名字
如果修改了端口则需要加上 Port 参数
还有各种各样的参数可以查看帮助

配置完后可以这样登陆服务器

Enjoy it~


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12940150.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存