博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SSH连接远程终端实用教程
阅读量:5908 次
发布时间:2019-06-19

本文共 2308 字,大约阅读时间需要 7 分钟。

微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。

老司机倾囊相授,带你一路进阶,来不及解释了快上车!

作为后端开发者,难免要经常与服务器打交道,部署项目,查看日志,排查问题等等,除了开发工作,其余时间基本都在终端上,那么你是怎么连接上服务器的呢?直接粗暴地用账号密码?但是直接用账号密码连接服务器存在安全风险,因为服务器有多人拥有权限,在密码拷贝给各个成员过程中,非常容易暴露出去,所以通常我们是通过 SSH 来连接远程终端。

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

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

客户端生成公钥密钥

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

下载 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 文件中:

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

如果创建 .ssh 目录和 authorized_keys 文件的时候是用 root 创建的,那么需要将其改成 chenghui.zhang 的用户权限:

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

如下:

客户端连接终端配置

在客户端 ~/.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复制代码

转载于:https://juejin.im/post/5cfffa83f265da1b6c5f6deb

你可能感兴趣的文章
LCD12864使用总结
查看>>
wireshark简明教程
查看>>
EditPlus配置Java编译器
查看>>
app已损坏,打不开。你应该将它移到废纸篓
查看>>
Switchover and Failover说明
查看>>
linux 环境RPM 安装MYSQL5.6
查看>>
Linux文件管理和编辑常用命令
查看>>
bluz-5.47 蓝牙
查看>>
C++ 读写文件
查看>>
海外旅游最常用的100句英语口语
查看>>
http协议进阶(五)连接管理
查看>>
服务器创建好后怎样使用远程连接工具链接的一些问题
查看>>
插件~NuGet与packages管理项目的包包
查看>>
笔试算法题(34):从数字序列中寻找仅出现一次的数字 & 最大公约数(GCD)问题...
查看>>
JS基本功 | JavaScript专题之数组 - 方法总结
查看>>
matlab数字图像处理函数,MATLAB数字图像处理学习(二)|常用函数
查看>>
错误请联系管理员文件 index.php,帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法...
查看>>
小米笔记本装linux教程视频教程,Archlinux安装指南~小米笔记本Air 13.3英寸版本
查看>>
linux卸载nomachine,NoMachine 安装与配置及使用
查看>>
企业shell常见面试题及企业实战案例深入浅出讲解
查看>>