如何使用ssh登录linux服务器,第1张

实现此的技术原理:

在内网通过域名绑定服务器,外网SSH访问连接时,通过域名的访问,实现访问内网LINUX。

具体的实现过程如下:

明确LINUX服务器内网访问地址端口,确保LINUX服务器正常开启SSH服务,在内网SSH可以正常访问连接。如图所示:

被访问端的Linux主机上使用nat123动态域名解析Linux版本。

在被访问端的Linux服务器安装nat123客户端,并登录使用它。

登录网页,左侧用户中心,添加域名解析,选择动态域名解析并添加确认。

选择动态域名解析记录,使用二级域名,或自己的域名。鼠标放在输入框有向导提示。如不理解负载均衡,不要勾选多点登录。

新添加动态解析后,等待几分钟生效。解析生效后,动态解析域名与本地公网IP是保持对应的。可以通过ping下域名核实,返回结果IP地址为本地公网IP地址时,表示动态解析生效正常。

路由器端口映射,路由映射SSH访问22端口。

因为公网IP是在路由器上的,外网访问时,需要经过路由,需要在路由器上做端口映射,将内网LINUX服务器访问22端口打通。路由器端口映射位置:转发规则/虚拟服务器/添加允许外网访问端口和协议。我的LINUX服务器SSH服务端口是默认的22,我内网对应LINUX服务器主机的内网IP地址是192168129。

外网访问时,使用动态解析域名。

在外网使用SSH访问内网LINUX服务器时,使用动态解析域名进行连接访问。域名是不变的,可以上网即可访问,再也不担心动态公网IP变化的问题。

后台无法登陆,出现Access denied指的是配置文件不正确,具体解决步骤如下:

1、当在浏览器中进行打开自己的一个网页之后,提示Access denied for user 'root'@'localhost' (using password NO)提示了数据访问的错误信息。

2、需要更改root的权限远程的访问的权限,进行进入到自己数据库之后,进入mysql数据库中:use mysql。

3、进行执行update user set host='%' where user='root'  的命令进行执行。

4、执行了相关的命令之后,还是需要进行执行的flush privileges的命令。

5、还需要进行修改的是在etc/sysconfig/selinux进行编辑SELINUX=disabled中。

6、设置完成之后还是需要进行重启Linux,在访问之后,不在显示错误的内容。

我们一般使用 PuTTY 等 SSH 客户端来远程管理 Linux 服务器。但是,一般的密码方式登录,容易有密码被暴力破解的问题。所以,一般我们会将 SSH 的端口设置为默认的 22 以外的端口,或者禁用 root 账户登录。其实,有一个更好的办法来保证安全,而且让你可以放心地用 root 账户从远程登录——那就是通过密钥方式登录。

密钥形式登录的原理是:利用密钥生成器制作一对密钥——一只公钥和一只私钥。将公钥添加到服务器的某个账户上,然后在客户端利用私钥即可完成认证并登录。这样一来,没有私钥,任何人都无法通过 SSH 暴力破解你的密码来远程登录到系统。此外,如果将公钥复制到其他账户甚至主机,利用私钥也可以登录。

下面来讲解如何在 Linux 服务器上制作密钥对,将公钥添加给账户,设置 SSH,最后通过客户端登录。

1 制作密钥对

首先在服务器上制作密钥对。首先用密码登录到你打算使用密钥登录的账户,然后执行以下命令:

[root@host ~]$ ssh-keygen <== 建立密钥对

Generating public/private rsa key pair

Enter file in which to save the key (/root/ssh/id_rsa): <== 按 Enter

Created directory '/root/ssh'

Enter passphrase (empty for no passphrase): <== 输入密钥锁码,或直接按 Enter 留空

Enter same passphrase again: <== 再输入一遍密钥锁码

Your identification has been saved in /root/ssh/id_rsa <== 私钥

Your public key has been saved in /root/ssh/id_rsapub <== 公钥

The key fingerprint is:

0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

密钥锁码在使用私钥时必须输入,这样就可以保护私钥不被盗用。当然,也可以留空,实现无密码登录。

现在,在 root 用户的家目录中生成了一个 ssh 的隐藏目录,内含两个密钥文件。id_rsa 为私钥,id_rsapub 为公钥。

2 在服务器上安装公钥

键入以下命令,在服务器上安装公钥:

[root@host ~]$ cd ssh

[root@host ssh]$ cat id_rsapub >> authorized_keys

如此便完成了公钥的安装。为了确保连接成功,请保证以下文件权限正确:

[root@host ssh]$ chmod 600 authorized_keys

[root@host ssh]$ chmod 700 ~/ssh

3 设置 SSH,打开密钥登录功能

编辑 /etc/ssh/sshd_config 文件,进行如下设置:

RSAAuthentication yes

PubkeyAuthentication yes

另外,请留意 root 用户能否通过 SSH 登录:

PermitRootLogin yes

当你完成全部设置,并以密钥方式登录成功后,再禁用密码登录:

PasswordAuthentication no

最后,重启 SSH 服务:

[root@host ssh]$ service sshd restart

4 将私钥下载到客户端,然后转换为 PuTTY 能使用的格式

使用 WinSCP、SFTP 等工具将私钥文件 id_rsa 下载到客户端机器上。然后打开 PuTTYGen,单击 Actions 中的 Load 按钮,载入你刚才下载到的私钥文件。如果你刚才设置了密钥锁码,这时则需要输入。

载入成功后,PuTTYGen 会显示密钥相关的信息。在 Key comment 中键入对密钥的说明信息,然后单击 Save private key 按钮即可将私钥文件存放为 PuTTY 能使用的格式。

今后,当你使用 PuTTY 登录时,可以在左侧的 Connection -> SSH -> Auth 中的 Private key file for authentication: 处选择你的私钥文件,然后即可登录了,过程中只需输入密钥锁码即可。

配置过程分为两大部分,SecureCRT部分和Linux服务器部分。

1、SecureCRT部分配置, 首先生成公钥。

打开SecureCRT(我的版本为70,估计其他版本基本相同)程序,点击菜单栏的“工具”-》“创建公钥”。按照步骤执行。其中一步比较重要就是选择公钥的格式。建议选择"OpenSSH",否则在服务器端使用时需要转换为OpenSSH各式。何必多次一举呢。所以这里必须选择“OpenSSH”。如果选错了。重新生成一次就可以了。

然后选择公钥私钥存放的地方。默认Identity是私钥,Identitypub是公钥。

2 Linux服务器部分

在某个账号下登录(可用账号密码的方式登录,也可在有公钥登录权限的机器上登录)Linux, 执行 "ls -a",

显示所有隐藏文件,找到 ss 文件夹, 执行"ll",找到authorized_keys文件,vi authorized_keys,

把Identitypub中的内容拷贝到authorized_keys,然后保存退出。该公钥对应的SecureCRT客户端就可以用当前账号登录该Linux服务器了

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何使用ssh登录linux服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情