linux服务器增加账号和配置ssh实现windows远程登陆

本文详细介绍在阿里云购买CES服务器的过程,包括使用Git管理代码、SSH公钥生成与配置、Linux账号创建及权限设置。通过具体步骤指导如何安全地使用公钥进行无密码登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 在阿里云买了一台最低配的服务器CES,一个月,不到30元。

 

2.如需Git管理自己的代码

更详细参考: https://blog.youkuaiyun.com/lishenluo/article/details/97812583

window本地下载git:

git for windows:Git-2.22.0-64-bit

直接用Git GUI的HELP中生成了公钥和秘钥。

 

SSH(Secure SHell)是一个应用层的安全协议,专为远程登录会话和其他网络服务。SSH1 和 SSH2 之分,修复缺陷和采用的加密算法不一样。OpenSSH是SSH协议的开源实现。Git GUI中用OpenSSH生成的Public Key(公钥)。

 

3.如果并不会用git管理自己的代码,那么可以直接下载,xshell中可以生成公钥。

 

4.刚开始购买linux服务器后使用root权限登陆上去,cd 到home文件夹下

5. 添加用户和设置密码,imtest是创建的用户名,passwd imtest 给指定的imtest用户创建密码,

New password和Retype new password后需要输入一样的密码,我这里输入的是123456,太简单,所以给出了警告,但是不影响使用哈。

6.这个时候其实可以用账号和密码登陆服务器了,我们试一下。

然后双击会话管理器这边的用户名

登陆成功:

7. 其实直接用账号和密码登陆的方式,是不安全的,而且在管理上也比较麻烦,特别是多个用户共用一个linux账号的时候。在有人离职后,还得改修一遍密码,否则别人搞点小破坏都无从抓起。 而用ssh public key登陆的方式相比要安全得多。

8.回到root登陆界面下,su imtest 改变当前用户

9. cd到用户文件夹下,建立.ssh文件并改变权限为700(只有当前用户有读写执行权限,其他用户无权限),必须是700,否则sshd识别不出来,用ssh public key登陆也就有问题。

注意:.开头的文件或文件夹是隐藏的,直接用ll或ls是显示不出来的。用ll -a

10. cd 到.ssh,新建authorized_keys文件,复制windows这边得到的公钥串过来,保存。改变文件权限为600,只有这样sshd才能读到,ssh public key登陆才起作用(这个好似不是600也可以,没有详细试)。

vim一个不存在的文件,相当于新建一个,然后在insert模式下把windows电脑这边的公钥shift+insert粘贴上。:wq保存退出。

11. 重连接会话,以root登陆,vim /etc/ssh/sshd_config 编辑sshd配置文件,把RSAAuthentication 和 PubkeyAuthentication 权限开放并置为yes。

(如果没有以root登陆,vim /etc/ssh/sshd_config 有可能是空的提示permission denied,那应该是没有对sshd_config的读写权限。sudo  su -root 切换到root权限,这里应该不可用,所以还是从新连接换成到root权限后对该文件的修改)

12. 重启sshd服务,service sshd restart

13.尝试以Public Key的方式登陆imtest这个账号

14.登陆成功

 

总结: windows这边准备好公钥,linux新建账号,新建.ssh和authorized_key,设置sshd_config,重启sshd,ok。

这样当有人离职后,只需要从authorized_keys文件中删除他的public key就好。

周二的额外放送:

1. 如果linux服务器作为跳板机,而imtest作为登陆跳板机的一个账号,那么通过imtest登陆到别的服务器怎么弄呢?

其实简单:

在账号当前目录下生产公钥和秘钥(秘钥不设置密码)

 

同理把id_rsa.pub中的公钥串加入到别的服务器的账号下的.ssh/authorized_key文件里,就可以通过该服务器登陆到别的服务器啦。

登陆: ssh -p port username@ip

2.chmod 命令简单解析

命令ll -a下

前面有十位权限说明,第一位d说明是目录,-表示文件。剩余9位:

对应当前用户,当前用户所在的组,别的用户的r读,w写,x执行权限。

所以700就是rwx------,600就是rw-------。为么是7或者6,是因为7的二进制三位表示就是111,6的二进制三位表示就是是110

正好对应rwx三位,然后ugo三个用户属性,所以9位刚好够表示。

 

 

### 使用SSH协议远程连接到Linux服务器 为了通过SSH协议实现远程登录Linux服务器,通常需要确保服务器已安装并配置SSH服务。在大多数Linux发行版中,默认已经预装了必要的软件包,如OpenSSLOpenSSH[^3]。 #### 启动SSH服务 如果尚未启动SSH服务,则可以通过以下命令来重启`sshd`服务: ```bash [root@localhost ~]# systemctl restart sshd ``` 确认SSH服务正在监听指定端口(通常是22),可利用`netstat`工具查看网络状态: ```bash [root@localhost ~]# netstat -tlnp | grep ssh tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 117093/sshd tcp6 0 0 :::22 :::* LISTEN 117093/sshd ``` 上述结果显示IPv4与IPv6均已在22号端口上等待来自任何地方的连接请求。 #### 远程连接方法 当目标器准备好接受外部访问后,可以从另一台计算发起SSH连接尝试。基本语法如下所示: ```bash ssh [-l username] hostname_or_ip_address ``` 其中`username`代表要在远端使用的账户名;而`hostname_or_ip_address`则是指代目的主的名字或者IP地址。如果不显式给出用户名参数,那么将会自动采用当前用户的名称作为默认值去匹配远方同名账号进行认证操作[^4]。 对于安全性更高的场景来说,建议启用基于密钥的身份验证方式代替传统的密码输入形式。这涉及到生成一对公私钥对,并将公共部分上传至待接入的目标节点之上。具体流程包括但不限于以下几个方面的工作内容: - 创建本地密钥对:运行`ssh-keygen`指令按照提示完成整个过程; - 将产生的`.pub`文件里的内容追加进对方家目录下的`~/.ssh/authorized_keys`文档之中; - 设置恰当权限位以保护敏感资料不被非法篡改或泄露。 一旦完成了以上准备工作,在后续建立新的会话时便不再依赖于交互式的口令询问环节而是直接借助事先协商好的非对称加密制来进行双向身份校验工作流[^2]。 #### 应用实例 假设存在一台位于局域网内的Ubuntu Linux服务器其公网可达的静态IP为`192.168.1.100`,现在打算从Windows个人电脑上面打开SecureCRT终端模拟器并通过它建立起一条通往那里的安全隧道。此时应该怎样做呢? 1. 打开SecureCRT程序界面点击新建Session按钮进入属性编辑窗口。 2. 在Host Name (or IP address)栏填入刚才提到的那个固定数值即`192.168.1.100`。 3. Protocol下拉菜单选择`SSH2`项因为这是目前最广泛支持的安全传输层标准之一[^1]。 4. 如果之前已经在客户这边制作好了专属秘钥材料的话记得勾选Use public key authentication复选框并且指向对应的PEM格式证书路径以便顺利完成无密码登陆体验。 5. 完成其余必要设定保存退出回到主面板双击刚刚构建完毕的任务条目即可触发实际通信动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值