Eu tenho uma máquina Linux e preciso fazer sftp para um servidor Windows SFTP. Portanto, para a primeira etapa, crio meu próprio id_rsa
arquivo e o arquivo id_rsa.pub
em minha máquina Linux.
Em seguida, copio o texto no id_rsa.pub
servidor id_rsa.pub
SFTP.
E a sftp
conexão funciona corretamente.
No entanto, gostaria de perguntar sobre o comando para copiar a chave pública do cliente para o servidor. Eu tenho pesquisa no google e recebo um comando que é:
ssh-copy-id -i id_rsa.pub ftp_user*@10.7.8.32
Mas me deparei com o seguinte erro:
'exec' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote. O sistema não consegue encontrar o caminho especificado.
Acredito que haja algumas saídas de comando para isso, certo? Em vez de copiar a chave pública manualmente para o servidor SFTP.
A versão SFTP é a versão 3 do protocolo SFTP.
ssh-copy-id
script funciona apenas em servidores * nix (ou servidores com emulação * nix), pois executa internamente alguns comandos shell * nix no servidor (comoexec
,sh
,umask
,rm
,mkdir
,tail
,cat
etc).Você pode configurar a chave manualmente. Sei que você sabe disso, mas como existem diferenças sutis, ao fazer isso em um servidor Windows, vou mencioná-lo de qualquer maneira para benefício de outros leitores.
Os passos principais são:
.ssh
pasta na pasta de perfil da sua conta do Windows (normalmente emC:\Users\username\.ssh
).authorized_keys
um arquivo na pasta e adicione sua chave pública a ele..ssh
pasta e oauthorized_keys
estão definidos de forma que apenas uma conta do Windows respectiva tenha acesso de gravação à pasta e o arquivo e a conta que executa o servidor tenham acesso de leitura. Observe também que o local do arquivo para Administradores é substituído nosshd_config
arquivo padrão para%ALLUSERSPROFILE%\ssh\administrators_authorized_keys
.Para obter detalhes, consulte meu guia Configurando a autenticação de chave pública SSH no Win32-OpenSSH.
Se você quiser fazer isso em sua máquina local, pode fazê-lo usando
sftp
. Principalmente se você ainda não possui chave no servidor cadastrado, basta fazer o upload doid_rsa.pub
arquivo comoauthorized_keys
arquivo:O acima é basicamente, o que
ssh-copy-id
faz internamente – Exceto quessh-copy-id
acrescenta oauthorized_keys
, o que simplessftp
não pode fazer. Se precisar anexar, você pode baixarauthorized_keys
para a máquina local, anexá-lo localmente e recarregá-lo de volta.Como alternativa, você pode configurar a chave de outra máquina Windows usando (meu) cliente WinSCP, com sua função Instalar chave pública no servidor .
Veja também minha resposta para Configurando a autenticação de chave pública para o servidor Linux do Windows (chave privada ppk) .
Você pode seguir a documentação da Microsoft para fazer isso - https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_keymanagement#deploying-the-public-key
Resumo (para Administrador)
ssh-key-gen
em seu cliente.id_rsa.pub
o arquivo para o servidor Windows no localC:\ProgramData\ssh\administrators_authorized_keys
.Use git-bash no Windows 10: cmd abaixo