Linux下实现ssh免密认证

本文介绍如何通过生成SSH密钥实现免密码登录,并详细演示了从生成密钥到验证免密登录的过程。此外,还介绍了如何在Linux系统中通过修改hosts文件来添加域名映射。

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

添加域名映射

  • 打开hosts文件
Vim /etc/hosts
  • 添加域名对象

这里写图片描述

配置ssh免密登陆

  • 生成密钥
[root@master ~]#  ssh-keygen        #root用户,master机,生成公私钥

这里写图片描述

拷贝master服务器公钥至本机

[root@master ~]# ssh master       #root用户,登录本机网络地址
[root@master ~]# exit            #退出本次登录
logout
Connection to master closed.
[root@master ~]#

验证master服务器ssh免密登录其余服务器

[root@master ~]# ssh  localhost                        #root用户,登录本机环回地址
[root@master ~]# ssh  master                         #root用户,登录本机网络地址
[root@master ~]# ssh  slave1                         #root用户,从master远程登录slave1
[root@master ~]# ssh  slave2                        #root用户,从master远程登录slave2
[root@master ~]# ssh  slave3                         #root用户,从master远程登录slave3
在C#中实现SSH登录Linux通常需要借助第三方库,如`Renci.SshNet`或者`SharpSSH`。以下是使用`Renci.SshNet`的一个简单示例: 首先,你需要安装`Renci.SshNet`包。如果你使用NuGet,可以在控制台运行: ```powershell Install-Package Renci.SshNet ``` 然后,你可以创建一个连接Linux服务器的类,例如: ```csharp using Renci.SshNet; using System; public class SshLogin { private readonly string _host; private readonly string _username; private readonly string _privateKeyPath; // 登录的私钥文件路径 public SshLogin(string host, string username, string privateKeyPath) { _host = host; _username = username; _privateKeyPath = privateKeyPath; } public void Connect() { using (var client = new SshClient(_host)) { // 设置SSH配置,包括加算法和私钥认证 client.SecurityProtocol = SecurityProtocols.Ssh2; client.Connect(); // 使用私钥文件进行身份验证 var privateKey = File.ReadAllText(_privateKeyPath); var key = new PrivateKey(privateKey); client.Authentication办法 = new PrivateKeyAuthenticationMethod(_username, key); if (!client.IsConnected) { throw new Exception($"无法连接到 {_host}。"); } Console.WriteLine("SSH连接成功,现在可以执行Linux命令..."); // 这里可以进一步执行ShellCommand或ExecuteCommand等方法执行Linux命令 // 示例:client.ExecuteCommand("ls"); // 如果需要保持连接直到关闭,请添加下面这行 // client.Disconnect(); } } } ``` 要使用这个类,只需创建实例并调用`Connect()`方法: ```csharp SshLogin ssh = new SshLogin("your-linux-host", "your-username", "/path/to/private/key"); ssh.Connect(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值