首页 > 系统相关 >解决:powershell无法使用ssh-copy-id命令

解决:powershell无法使用ssh-copy-id命令

时间:2023-02-02 22:57:54浏览次数:45  
标签:rsa pub publicKey ssh copy id

如果你在配置服务器的免密登陆时出现了如下的error,那这篇文章一定会对你有帮助

image

(zzh是我配置的别名,如果没有配置过,后面跟的参数应该是用户名@ip地址的格式)

报错的原因呢,其实是Windows终端和Linux终端不同,没有内置ssh-copy-id命令

本文提供三种解决方案

正常情况下,用第一种就可以解决了,而且第一种方案也最方便

方案一 复制下面这段脚本,粘贴到Windows终端,按回车运行即可

function ssh-copy-id([string]$userAtMachine, $args){   
    $publicKey = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    if (!(Test-Path "$publicKey")){
        Write-Error "ERROR: failed to open ID file '$publicKey': No such file"            
    }
    else {
        & cat "$publicKey" | ssh $args $userAtMachine "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

这样以后,就可以成功使用ssh-copy-id

上面这段其实就是,根据ssh-copy-id的执行逻辑来编写的shell脚本


方案二:下载一个git bash

git bash是肯定可以有ssh-copy-id命令的,直接用就好了

顺便提一句,如果还是不行,可能是没有ssh-keygen生成密钥

image



方案三 最本质的做法

ssh-copy-id的本质是把你本地的公钥添加到服务器/远程机的~/.ssh/authorized_keys文件里

powershell不给力,那我们自己Ctrl CV就好了

ssh-keygen生成密钥后,家目录/.ssh就会多两个文件

  • id_rsa:私钥
  • id_rsa.pub:公钥

第一步

我们cd .ssh

然后cat .\id_rsa.pub

再把内容复制

第二步

ssh到自己的服务器

~/.ssh/目录创建authorized_keys

通过vim把剪切板的内容粘贴到该文件即可

下次登陆就不需要输入密码了

标签:rsa,pub,publicKey,ssh,copy,id
From: https://www.cnblogs.com/zhouzhihao/p/17087666.html

相关文章

  • xib起冲突 StartTag: invalid element name
    <欢迎大家加入iOS开发学习交流群:QQ529560119>首先要表明下心态,代码已经推到到了项目分支,跑步起来xib点不开,双击就报错line:XX StartTag:invalidelementname,感觉真的挂了......
  • Fiddler抓包https
    1、fiddler下载:​​https://www.telerik.com/fiddler​​2、打开fiddler,找到tools-options3、选择https:勾选图示项4、Actions中导出证书5、在浏览器中导入证书......
  • linux centos8硬盘组合为raid0挂载教程
    linuxcentos8硬盘组合为raid0挂载教程https://cloud.tencent.com/developer/article/1946028发布于2022-02-2317:23:23阅读2840查看硬盘信息#fdisk-lD......
  • Android本地备份功能禁用
    最近部分设备激活客户端后发现本地备份的功能被禁用了,排查原因发现:/***Allowsthedeviceownertoenableordisablethebackupservice.**<p>B......
  • RAID 磁盘阵列学习资料
    目录RAID和LVM的区别RAID等级RAID0RAID1RAID5RAID10Linux软RAID创建RAID阵列使用RAID阵列模拟磁盘坏了什么是快(R)乐(A)星(I)球(D)磁盘阵列(RedundantArr......
  • Wifi BSSID获取
    代码很简单,通过wifiManager获取wifiinfo,从而获取bssid,publicstaticStringgetWifiSSID(Contextcontext){Stringbssid="";ConnectivityManage......
  • Android动态数字输入框
    基础view如下:具体的思路实现:1:展示textview实现2:顶层使用透明的edittext.获取焦点/删除文字等。publicclassBaseVerificationCodeViewextendsRelativeLayout{......
  • Android辅助功能
    1:AccessibilityService新建servicepublicclassAccessibilityServiceextendsandroid.accessibilityservice.AccessibilityService{privatestaticfinalString......
  • Android联系人增删改查
    1:申请权限<uses-permissionandroid:name="android.permission.READ_CONTACTS"/><uses-permissionandroid:name="android.permission.WRITE_CONTACTS"/>2:读取......
  • win下如何用heidiSQL连接Docker Desktop中的pg数据库
    step1:   step2:  setp3:在container中就出现了这个示例 ......