SSH链接远程终端实用教程

微信公众号「后端进阶」,专一后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。
老司机倾囊相授,带你一路进阶,来不及解释了快上车!git

做为后端开发者,不免要常常与服务器打交道,部署项目,查看日志,排查问题等等,除了开发工做,其他时间基本都在终端上,那么你是怎么链接上服务器的呢?直接粗暴地用帐号密码?可是直接用帐号密码链接服务器存在安全风险,由于服务器有多人拥有权限,在密码拷贝给各个成员过程当中,很是容易暴露出去,因此一般咱们是经过 SSH 来链接远程终端。vim

SHH 可分为客户端和服务端,服务端是一个守护进程,通常是 sshd 进程,在后台运行并响应来自客户端的请求,提供了对远程请求的处理,通常包括公共密钥认证、密钥交换、对称密钥加密和非安全链接;客户端通常是 ssh 进程,另外还包含 scp、slogin、sftp 等其余进程。后端

这篇文章主要讲如何 ssh 链接远程终端,以此记录一下整个配置过程。安全

客户端生成公钥密钥

用 git 命令 ssh-keygen -t rsa ,会在 ~/ 下生成一个 .ssh 的隐藏文件夹,里面包含 id_rsa 密钥和 id_rsa.pub 公钥,等下把公钥添加到服务器。bash

下载 ssh,配置 ssh,启动 sshd

$ yum install openssh-server -y
复制代码

OpenSSH 的主配置文件:/etc/ssh/sshd_config服务器

如下是一些经常使用设置:微信

# 设置SSH的端口号是22(默认端口号为22)
Port 22

# 使用ssh验证登录
RSAAuthentication yes 
pubkeyAuthentication yes

# 公钥文件路径
AuthorizedKeysFile	.ssh/authorized_keys

# 禁止密码登录
PasswordAuthentication no


复制代码

开启 sshd:网络

$ systemctl start sshd.service #启动
$ systemctl stop sshd.service #中止
$ systemctl restart sshd.service #重启 
复制代码

查看进程:框架

$ ps -ef | grep sshd
复制代码

服务端建立用户,添加公钥

在 ssh 启动后,会在 ~/ 下建立一个 .ssh 隐藏文件夹,里面有一个 authorized_keys 文件,能够在这个文件添加须要链接的服务器的客户端的公钥,可是通常不会这么作,这会有安全隐患,由于在 root 目录下的公钥的客户端登录到服务器后会直接取得 root 权限,因此我会建立一个用户,在用户全部在目录下添加 .ssh 目录,在 .ssh 目录下建立 authorized_keys 文件,最后把本地公钥添加到 authorized_keys 文件中:ssh

  • 建立用户:
$ adduser chenghui.zhang
复制代码

若是建立 .ssh 目录和 authorized_keys 文件的时候是用 root 建立的,那么须要将其改为 chenghui.zhang 的用户权限:

chown chenghui.zhang|chenghui.zhang /home/chenghui.zhang/.ssh
chown chenghui.zhang|chenghui.zhang /home/chenghui.zhang/.ssh/authorized_keys
复制代码

以下:

ssh

客户端链接终端配置

在客户端 ~/.ssh 里面建立一个 config 文件:

$ touch config
复制代码

编辑:

$ sudo vim config
复制代码

添加内容:

# 测试服务器
Host test
    HostName xxx.xx.xxx.xxx #服务器ip地址
    Port 22 #服务器配置的ssh端口号
    User chenghui.zhang #在服务器的用户名(对应用户文件夹名字)
复制代码

而后在终端( macOS 推荐使用 iTerm2 )输入:

$ ssh test
复制代码

到这里,就能够登上服务器了,但如今你还没得到 root 权限。

服务端设置用户获取 root 权限密码

接下来就是给用户配置须要输入密码获取 root 权限的操做,在服务器 root 权限下给 chenghui.zhang 用户添加密码:

$ passwd chenghui.zhang
复制代码

而后就是输入密码。

这时还须要在 /etc/sudoers 给该用户临时提高权限( sudo 就是咱们经常使用的命令,仅须要输入当前用户密码,即可以完成权限的临时提高)

$ sudo vim /etc/sudoers
复制代码

添加下面内容:

# 格式为(用户名 网络中的主机=(执行命令的目标用户) 执行的命令范围)
$ chenghui.zhang    ALL=(ALL)       ALL
复制代码

这时候退出保存可能会遇到文件只读状态,咱们还须要给该文件更改权限:

$ chmod 700 /etc/sudoers
复制代码

在登录服务器以后,须要取得临时 root 权限:

$ sudo su -
复制代码

提示你输入密码,输入刚刚的密码,这时候你就拥有了root权限了。为安全起见,记得操做完后切换回用户目录:

$ su - chenghui.zhang
复制代码

公众号「后端进阶」,专一后端技术分享!
相关文章
相关标签/搜索