방법: c:\ProgramData\ssh\administrators_authorized_keys에 있는 scp를 사용하여 Linux(클라이언트)에서 Windows(openssh를 실행하는 서버)에 공개 키를 연결합니다.

방법: c:\ProgramData\ssh\administrators_authorized_keys에 있는 scp를 사용하여 Linux(클라이언트)에서 Windows(openssh를 실행하는 서버)에 공개 키를 연결합니다.

관리자 권한으로 Linux(Ubuntu)에서 Windows 서버로 클라이언트 키를 복사하려고 합니다.
지금까지는 다음 단계를 통해 이를 달성할 수 있습니다.

저는 관리자로서 Linux에서 bash를 사용하고 Windows에서 powershell 7.3.4를 사용하고 있습니다.

  1. Linux 클라이언트의 공개 키를 Windows 서버에 복사합니다.
    scp ~/.ssh/public_key.pub Admin@WindowsServer:__PROGRAMDATA__/ssh/
  2. Windows 서버에 SSH로 접속하여 administrators_authorized_keys파일이 존재하는지 확인하고, C:\PROGRAMDATA\SSH\
    존재하지 않으면 파일을 생성하십시오.
    New-Item -Force -Path c:\PROGRAMDATA\ssh\administrators_authorized_keys
  3. Administrators_authorized_keys 파일에 대한 권한을 설정합니다.
    icacls C:\PROGRAMDATA\ssh\administrators_authorized_keys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
  4. public_key.pub의 내용을administrator_authorized_keys에 추가합니다.
    Get-Content C:\ProgramData\ssh\public_key.pub | Add-Content C:\ProgramData\ssh\administrators_authorized_keys

이제 파일이 생성되고 구성되었으므로 다른 Linux 클라이언트를 사용하여 공개 키를 이 Windows 서버(이미 구성됨)에 연결하고 ONE-LINE에서 사용하려고 administrators_authorized_keys합니다 .administrators_authorized_keysscp

나는 다음과 같은 것을 시도했습니다. 공개 키 파일을 복사했지만 파일
scp Linux2Win_key.pub Admin@WindowsServer:__ProgramData__/ssh/ ; Get-Content C:\ProgramData\ssh\Linux2Win_key.pub | Add-Content C:\ProgramData\ssh\administrators_authorized_keys
에 추가하지 않았습니다 . administrator_authorized_keys오류가 발생합니다.
-bash: Add-Content: command not found
-bash: Get-Content: command not found
그런 다음 이것을 시도했습니다. scp Linux2Win_key.pub Admin@WindowsServer:__ProgramData__/ssh/ ; cat __ProgramData__/ssh/Linux2Win_key.pub >> __ProgramData__/ssh/administrators_authorized_keys
비슷한 결과, 공개 키 파일이 복사되었지만 administrator_authorized_keys파일에 추가되지 않았습니다. 에러 발생됨:
-bash: __ProgramData__/ssh/administrators_authorized_keys: No such file or directory

생각:
scp는 파일만 복사할 수 있고 ssh-copy-id는 Windows에서 작동하지 않는 것 같습니다. 하지만 Windows에서는 openssh를 활성화하고 ssh를 사용할 수 있습니다.

authorized_keysWindows에 공개 키를 연결 하거나 Windows에서 연결하는 더 좋은 방법(수동으로 수행하는 대신)을 알고 있다면 administrators_authorized_keys공유해 주세요. 감사
합니다. 이것은 Windows 관련 질문에 가깝습니다. 다른 곳에 물어보려고 했습니다.
Linux/Unix 포럼에 이 질문을 해서 누군가를 기분 나쁘게 만들었다면 죄송합니다.

답변1

따옴표가 누락 된 것 같습니다!

명령어를 사용할 때에는 scp다음 Admin@WindowsServer:내용을 따옴표로 묶어야 합니다.

scp Linux2Win_key.pub Admin@WindowsServer:'__ProgramData__/ssh/ ; Get-Content C:\ProgramData\ssh\Linux2Win_key.pub | Add-Content C:\ProgramData\ssh\administrators_authorized_keys'

이것은 나에게 효과적입니다.

관련 정보