Quando utilizamos o Fleet Patching and Provisioning (FPP) sem a instalação de FPP Client no servidor “Target”, é necessário especificar uma das três formas suportadas para autenticação SSH entre o FPP Server e o servidor indicado no parâmetro -targetnode. Entre as opções disponíveis, temos a possibilidade de informar uma combinação de usuário + chave ssh usando uma síntaxe similar ao exemplo abaixo:
rhpctl ... -auth sshkey -arg1 user:oracle -arg2 identity_file:/home/oracle/.ssh/id_rsa -arg3 sudo_location:/usr/bin/sudo
OBS: Se o usuário em questão for o root, o argumento 3 indicando o caminho do utilitário sudo é opcional.
Problema
Ao tentar usar esse método de autenticação com chave SSH, os comandos rhpctl falham com erros PRCZ-4001 / PRCZ-2006 / invalid privatekey :
$ rhpctl import image -image GI1921 -path /u01/app/19.0.0.0/grid -targetnode server1 -auth sshkey -arg1 user:oracle-arg2 identity_file:/home/oracle/.ssh/id_rsa -arg3 sudo_location:/usr/bin/sudo PRCZ-4001 : failed to execute command "/usr/bin/id" using the privileged execution plugin "sshkey" on nodes "server1" within 36,000 seconds PRCZ-2006 : Unable to establish SSH connection to node "server1" to execute command "/usr/bin/id" invalid privatekey: [B@33962348
Um teste básico de conexão ssh usando a mesma chave passada no comando acima funcionava corretamente.
ssh -i /home/oracle/.ssh/id_rsa oracle@server1
Solução
1) Verificado que o formato da chave privada estava como OPENSSH:
Exemplo
$ cat /home/oracle/.ssh/id_rsa -----BEGIN OPENSSH PRIVATE KEY----- .... .... -----END OPENSSH PRIVATE KEY-----
2) Se estiver com padrão OPENSSH, recrie com padrão RSA.
ssh-keygen -p -m PEM -f <private key path>
Exemplo:
$ ssh-keygen -p -m PEM -f /home/oracle/.ssh/id_rsa Key has comment 'oracle@server1' Enter new passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved with the new passphrase.
3) Verificando que a chave privada foi convertida para RSA PRIVATE KEY:
$ cat /home/oracle/.ssh/id_rsa -----BEGIN RSA PRIVATE KEY----- ... ... -----END RSA PRIVATE KEY-----
Após converter o formato da chave, os comandos rhpctl autenticaram normalmente:
rhpctl import image -imagetype ORACLEGISOFTWARE -image GI1921 -path /u01/app/19.0.0.0/grid -targetnode server1 -auth sshkey -arg1 user:oracle -arg2 identity_file:/home/oracle/.ssh/id_rsa -arg3 sudo_location:/usr/bin/sudo fppserver.dibiei.com: Audit ID: 5 fppserver.dibiei.com: Adding storage for image ... fppserver.dibiei.com: Creating a new ACFS file system for image "GI1921" ... fppserver.dibiei.com: Copying files...