连接服务器不能用密码登录,只有public key

用了多年的xshell不能用password登录?

有的同学在登录服务器时候发现,想输密码却无法输入,顿时惊得早饭都噎住了??!
没有Password登录
看着十分离奇,不过解决办法也很容易
解决后发现,也不过尔尔~~
登录到你服务器的控制台
我的是腾讯云,找到远程登录
远程登录

点开后默认是临时用户,先切换到root角色

sudo su

sudo
进到这个文件

vi /etc/ssh/sshd_config

找到PasswordAuthentication
在这里插入图片描述
改为PasswordAuthentication yes

重启sshd

systemctl restart sshd

大功告成!!!
接下来再去访问,password输入框肯定就亮起来了!




注:有些同学是重置了服务器,所以才导致了上面的情况

这里要注意一下,执行完上面的操作,记得去控制台重置密码

因为重置服务器密码也是一并被初始化了,不然登录时候就会告诉你

ssh拒绝了密码,请再试一次
ssh拒绝密码
好了,踩这个坑的就注意一下,容易遗忘

对于使用 Java 连接服务器并进行公钥认证的问题,你可以按照以下步骤进行操作: 1. 创建一个 `java.security.KeyPair` 对象,其中包含公钥和私钥。可以使用 `java.security.KeyPairGenerator` 类来生成密钥对,具体代码如下: ```java KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGenerator.initialize(2048); // 设置密钥长度 KeyPair keyPair = keyPairGenerator.generateKeyPair(); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); ``` 2. 通过 SSH 或其他方式将公钥上传到服务器。具体的上传方式取决于服务器和操作系统的设置。一般来说,你需要将公钥内容添加到目标用户的 `~/.ssh/authorized_keys` 文件中。你可以使用 SSH 命令或其他工具来完成此操作。 3. 在 Java 中使用 `JSch` 库连接服务器。`JSch` 是一个用于实现 SSH2 协议的 Java 实现。你可以通过 Maven 或其他方式将其添加到项目中。以下是一个简单的示例代码: ```java import com.jcraft.jsch.*; public class SSHExample { public static void main(String[] args) { try { JSch jsch = new JSch(); // 创建会话 Session session = jsch.getSession("username", "hostname", 22); session.setPassword("password"); // 设置公钥认证 String privateKey = "path/to/private_key"; jsch.addIdentity(privateKey); session.setConfig("PreferredAuthentications", "publickey"); // 配置其他选项(可选) session.setConfig("StrictHostKeyChecking", "no"); session.setConfig("Compression", "yes"); // 连接服务器 session.connect(); // 执行命令或其他操作 Channel channel = session.openChannel("shell"); channel.connect(); // 关闭连接 channel.disconnect(); session.disconnect(); } catch (JSchException e) { e.printStackTrace(); } } } ``` 在上面的代码中,你需要替换以下参数: - `"username"`: 服务器登录用户名 - `"hostname"`: 服务器主机名或 IP 地址 - `"password"`: 用户密码(如果使用密码认证) - `"path/to/private_key"`: 私钥文件路径(如果使用公钥认证) 请注意,使用公钥认证时,私钥文件的权限应为 600。 希望这些信息能帮助到你!如果你有任何其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值