ssh用户秘钥登录设置

1.新建用户
[fuyonghai@master1 ~]$ sudo useradd fyh

2.为用户设置密码
[fuyonghai@master1 ~]$ sudo passwd fyh

3.将用户添加到提权文件配置中
[fuyonghai@master1 ~]$ sudo visudo

Allow root to run any commands anywhere #表示允许root(只要配置上的其他用户也可以)用户在任何地方可以执行任何命令
root ALL=(ALL) ALL
fyh ALL=(ALL) ALL

4.将用户添加到提权免输root密码配置中,注意带%号表示组,不带表示具体用户,建议精确到用户
[fuyonghai@master1 ~]$ sudo visudo

Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
fyh ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx

5.使用新建用户创建文件夹/.ssh并设置权限为700,并创建文件/.ssh/authorized_keys 并设置权限为600
su - fyh
mkdir ~/.ssh && chmod 700 .ssh/
cd ~/.ssh
touch authorized_keys && chmod 600 authorized_keys
vim authorized_keys

6.从linux或者windows连接端生成公私钥,并将公钥信息完全粘到新用户的~/.ssh/authorized_keys 文件中
使用工具命令生成

7.设置配置文件 sudo vim /etc/ssh/sshd_config
PermitRootLogin no #将yes改为no 表示禁止root用户远程登录,无论是密码还是公钥都将无法登录
PasswordAuthentication no #禁止采用密码登录
PubkeyAuthentication yes #表示开启公钥登录
AuthorizedKeysFile .ssh/authorized_keys #公钥配置文件路径

8.配置后重启ssh
sudo systemctl restart sshd

9.进行登录测试
登录测试,采用xshell或其他工具都可以
如何是linux系统则用如下命令,其中 -i 表示指定私钥登录,
ssh -i ~/.ssh/id_rsa fyh@192.168.10.91

### 如何通过Linux使用SSH密钥认证登录到Windows服务器 为了实现从Linux客户端通过SSH密钥认证安全地连接到Windows服务器,可以按照以下方法操作: #### 配置环境准备 确保目标Windows服务器已安装并启用了OpenSSH服务。可以通过PowerShell运行`Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'`来确认是否已经启用OpenSSH Server功能[^1]。 如果未启用,则可通过以下命令启用它: ```powershell Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 ``` 启动并设置开机自动启动该服务: ```powershell Start-Service sshd Set-Service -StartupType Automatic sshd ``` #### 创建SSH密钥对 在Linux端生成一对新的SSH密钥(如果没有现成的)。这通常由`ssh-keygen`工具完成[^2]: ```bash ssh-keygen -t rsa -b 4096 -C "your_email@example.com" ``` 上述命令会提示指定保存位置以及密码保护选项,默认路径为~/.ssh/id_rsa及其对应的公钥id_rsa.pub。 #### 将公钥复制至Windows主机 有几种方式可把用户的公钥传输给远程Windows机器上的适当目录下以便后续验证过程能够顺利执行: 一种简单的方法就是直接编辑文件或者利用scp命令传送过去之后手动调整权限等属性;另一种更便捷的方式则是借助专门为此设计的小程序——比如PuTTY中的plink.exe亦或是标准Unix/Linux下的ssh-copy-id实用程序(不过后者可能需要先做些额外配置才能正常工作于跨平台场景)[^3]: 假设采用最基础的手动形式,具体步骤如下所示: 1. 登录进入目标Winodws系统; 2. 找到位于用户家目录内的.ssh子文件夹(`%USERPROFILE%\.ssh`),若不存在则新建之; 3. 在此创建名为authorized_keys的新文本档并将之前产生的public key内容粘贴进去; 4. 修改相应访问控制列表ACLs使得只有owner自己能读写这些敏感资料[^4]. 最后一步非常重要因为不当的安全设定可能导致整个机制失效甚至带来安全隐患. #### 测试连接 现在应该可以从原始发起请求的地方尝试无密码身份验证建立session了: ```bash ssh username@windows_server_ip_address ``` 成功的话就不会再询问任何关于passphrase之类的东西除非当初设置了master passphrase用于加密私钥本身之外的情况发生时才会弹出来要求输入一次解码所需的短语而已. --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值