使用ssh密钥远程登录linux 步骤

userauth_pubkey: signature algorithm ssh-rsa not in PubkeyAcceptedAlgorithms

1. 在本机 生成公钥私钥

ssh-keygen -m PEM -t rsa -b 4096 

2.将公钥发送到远程服务器

 1)linux:

 ssh-copy-id -i  /home/tenant/.ssh/id_rsa.pub 远程服务器用户名@远程IP地址

 2)windows:C:/Users/Lenovo/.ssh/id_rsa

ssh-copy-id -i  C:/Users/Lenovo/.ssh/id_rsa.pub 远程服务器用户名@远程IP地址

3.检查远程服务器的sshd_config 是否支持rsa

 /etc/ssh/sshd_config 配置,追加上PubkeyAcceptedAlgorithms=+ssh-rsa 

4.代码测试

            Logger logger = new Logger() {
                @Override
                public boolean isEnabled(int level) {
                    // 这里可以根据需要判断是否记录某个级别的日志
                    return true; // 记录所有级别的日志
                }

                @Override
                public void log(int level, String message) {
                    // 将日志信息输出到控制台(你也可以输出到文件等其他地方)
                    System.out.println("JSch Log: " + message);
                }
            };
            JSch.setLogger(logger);

            JSch jsch = new JSch();
            //  jsch.addIdentity("C:\\Users\\Lenovo\\.ssh\\id_rsa","aaaaaa");

            byte[] privateKeyBytes = Files.readAllBytes(Paths.get("C:/Users/Lenovo/.ssh/id_rsa"));
            byte[] publicKeyBytes  = Files.readAllBytes(Paths.get("C:/Users/Lenovo/.ssh/id_rsa.pub"));
            byte[] passphraseBytes = "aaaaaa".getBytes();
            jsch.addIdentity("id_rsa", privateKeyBytes, publicKeyBytes, passphraseBytes);

            Session session = jsch.getSession("用户名", "IP地址", 22);
            session.setConfig("StrictHostKeyChecking", "no");
            session.connect();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值