관리자 권한으로 Linux(Ubuntu)에서 Windows 서버로 클라이언트 키를 복사하려고 합니다.
지금까지는 다음 단계를 통해 이를 달성할 수 있습니다.
저는 관리자로서 Linux에서 bash를 사용하고 Windows에서 powershell 7.3.4를 사용하고 있습니다.
- Linux 클라이언트의 공개 키를 Windows 서버에 복사합니다.
scp ~/.ssh/public_key.pub Admin@WindowsServer:__PROGRAMDATA__/ssh/
- Windows 서버에 SSH로 접속하여
administrators_authorized_keys
파일이 존재하는지 확인하고,C:\PROGRAMDATA\SSH\
존재하지 않으면 파일을 생성하십시오.
New-Item -Force -Path c:\PROGRAMDATA\ssh\administrators_authorized_keys
- Administrators_authorized_keys 파일에 대한 권한을 설정합니다.
icacls C:\PROGRAMDATA\ssh\administrators_authorized_keys /inheritance:r /grant "Administrators:F" /grant "SYSTEM:F"
- 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_keys
scp
나는 다음과 같은 것을 시도했습니다. 공개 키 파일을 복사했지만 파일
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_keys
Windows에 공개 키를 연결 하거나 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'
이것은 나에게 효과적입니다.