Collegarsi al server con WinSCP e file .ppk

Informazioni, consigli e novità sulla galassia delle distribuzioni GNU/Linux, *nix, *BSD e su altri sistemi operativi non liberi.
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

Vorrei collegarmi ad un server con Ubuntu 22.04 LTS usando SFTP ed un file .ppk prodotto con Puttygen. Con FileZilla ci riesco ma con WinSCP no. Sapete dirmi se c'è qualche spunta particolare da mettere nel programma?
grazie
korda
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1720
Iscrizione: giovedì 24 dicembre 2020, 15:58

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da korda »

Se non sbaglio WinSCP si appoggia a PuTTY come agent.
Forse dovresti importare la tua chiave nel profilo di PuTTY.
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

Ovvero? Cosa dovrei fare? Puoi spiegarmi la procedura?
Se premo "Apro in Putty" (ho visto ora il pulsante) ottengo un errore.
korda
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1720
Iscrizione: giovedì 24 dicembre 2020, 15:58

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da korda »

Trovato: selezioni il profilo -> click su Avanzate -> selezioni il tab SSH/Autenticazione -> carichi il tuo file di chiave privata
Immagine
P.S.: inutile dire che sul server SFTP dovrai prima averci caricato la chiave pubblica ;)
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

Io faccio esattamente come fai tu!!!
La chiave pubblica non la carica automaticamente il provider durante la creazione dell'istanza di ubuntu?
Se con Putty e con FileZilla riesco a collegarmi non ho la certezza che la chiave pubblica sia già stata caricata correttamente?
Come faccio a verificare se la chiave pubblica è stata caricata correttamente?
korda
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1720
Iscrizione: giovedì 24 dicembre 2020, 15:58

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da korda »

federicogalimberti ha scritto:
giovedì 9 giugno 2022, 23:37
Io faccio esattamente come fai tu!!!
La chiave pubblica non la carica automaticamente il provider durante la creazione dell'istanza di ubuntu?
Se con Putty e con FileZilla riesco a collegarmi non ho la certezza che la chiave pubblica sia già stata caricata correttamente?
Come faccio a verificare se la chiave pubblica è stata caricata correttamente?
Facciamo un passo indietro...

Quando usi PuTTY o Filezilla ti viene chiesto di inserire la password della tua utenza sul server? Oppure, qualora l'avessi impostata, la password della tua chiave RSA?
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

No, non mi viene chiesta nessuna password. Digito 'ubuntu' e stop, sia su Putty che su FileZilla. L'utenza 'ubuntu' era già presente, non l'ho creata io. Ad 'ubuntu' ho assegnato una password appena mi sono collegato con Putty. Ovviamente ho assegnato anche una password a root. Su Puttygen ci sono 5 campi, i primi 3 me li ha dati il provider (Oracle Cloud). Io ho editato il terzo campo e sostituito con 'ubuntu-22-04-lts'. Quando mi collego con Putty vedo questo:

Codice: Seleziona tutto

login as: ubuntu
Authenticating with public key "ubuntu-22-04-lts"
Welcome to Ubuntu 22.04 LTS (GNU/Linux 5.15.0-1009-oracle aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Fri Jun 10 09:28:07 UTC 2022

  System load:  0.0               Processes:                148
  Usage of /:   5.2% of 48.29GB   Users logged in:          0
  Memory usage: 5%                IPv4 address for docker0: ...
  Swap usage:   0%                IPv4 address for enp0s3:  ...

 * Super-optimized for small spaces - read how we shrank the memory
   footprint of MicroK8s to make it the smallest full K8s around.

   https://ubuntu.com/blog/microk8s-memory-optimisation

0 updates can be applied immediately.


Last login: Thu Jun  9 22:02:14 2022 from ...
ubuntu@webserver:~$
Puttygen (per creare la foto sotto ho premuto su Generate ma sul mio server ho premuto su load):
Immagine
FileZilla (questo funziona):
Immagine
Altra cosa strana che ho notato è questa. Su Google Cloud la stringa "kei comment" diventa anche un utente di Ubuntu da usare per collegarsi in SSH mentre su Oracle Cloud no. Su Oracle infatti ho faticato a capire che per connettermi dovevo digitare 'ubuntu' e non 'ubuntu-22-04-lts'. Ho anche provato a non scrivere 'ubuntu-22-04-lts' e lasciare la stringa fornitami dal provider ma con WinSCP ho riscontrato lo stesso problema.
korda
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1720
Iscrizione: giovedì 24 dicembre 2020, 15:58

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da korda »

mmmh... continui a menzionare provider che ti forniscono chiavi RSA... Ho il dubbio che siano Oracle Cloud o Google Cloud a gestire dove e in quale percorso mettere la chiave pubblica e le autorizzazioni varie.

Non ho mai avuto a che fare con il protocollo che menzioni. Solitamente io:
1) aggiungo manualmente la chiave pubblica sull'host dove mi devo collegare
2) oppure la copia-incollo in un form di una pagina web apposita (ad esempio con GitHub)

Se fosse il caso 1) potresti provare a collegarti con PuTTY e vedere se nella tua home c'è una cartella chiamata .ssh.
Lì dentro dovresti trovare due file plain text:
* known_hosts che contiene la lista dei dispositivi che vi accedono
* authorized_keys che contiene l'elenco delle chiavi pubbliche accettate
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

Grazie per il tuo supporto. Mi sono collegato ora con FileZilla e trovo questo:

Codice: Seleziona tutto

/home/ubuntu/.ssh/authorized_keys
Dentro il file 'authorized_keys' senza estensione trovo scritto:

Codice: Seleziona tutto

ssh-rsa stringa1 stringa2
Al posto di stringa1 c'è un codice alfanumerito lunghissimo, quello che sopra è mostrato nel campo key (ovviamente diverso) e in stringa2 c'è il nome del file che ho scaricato da Oracle Cloud (stringa2.key) che contiene la chiave privata.
Da Oracle Cloud io ho scaricato 2 file:
stringa2.key

Codice: Seleziona tutto

-----BEGIN RSA PRIVATE KEY-----
codice_privato
-----END RSA PRIVATE KEY-----
stringa2.key.pub

Codice: Seleziona tutto

ssh-rsa stringa1 stringa2
Su puttygen io ho caricato stringa2.key e non stringa2.key.pub. Se carico stringa2.key.pub ottengo questo errore:
Immagine
Caricando la chiave privata stringa2.key puttygen me la converte automaticamente in pubblica. Ho controllato le prime e le ultime cifre del codice e coincidono. Al posto di stringa2 nel campo 'key comment' non trovo stringa2 ma una stringa aggiunta da puttygen sempre uguale ovvero imported-openssh-key.
Le chiavi private e pubbliche prodotte da puttygen dopo aver importato la chiave pubblica da Oracle Cloud e digitato 'ubuntu-22-04-lts' in 'key comment' sono di questo tipo:
chiave_pubblica

Codice: Seleziona tutto

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "ubuntu-22-04-lts"
stringa1
---- END SSH2 PUBLIC KEY ----
chiave_privata.ppk

Codice: Seleziona tutto

PuTTY-User-Key-File-3: ssh-rsa
Encryption: none
Comment: ubuntu-22-04-lts
Public-Lines: 6
stringa1
Private-Lines: 14
stringa_lunghissima
Private-MAC: stringa_corta
Su Google Cloud invece non devo scaricare nulla in fase di creazione dell'istanza, carico semplicemente chiave_pubblica in un form e stop (chiave_privata.ppk la carico su putty per connettermi). Su Google Cloud il comportamento è diverso perché per connettermi al server con putty devo digitare nel terminale 'ubuntu-22-04-lts' e non 'ubuntu' come su Oracle Cloud. Ovviamente anche su Google Cloud ho lo stesso problema, mi collego facilmente con putty e filezilla ma non con winscp. Dovrei averti detto tutto.
korda
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1720
Iscrizione: giovedì 24 dicembre 2020, 15:58

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da korda »

Il mistero si infittisce sempre più... Se Oracle Cloud ti ha già fornito una coppia di chiavi RSA, perché ne hai create di nuove con PuTTYgen???
Io non sono Bagheera né Akela, io non frequento la Rupe.
Io sono Kaa: faccio ballare le scimmie alle Tane Fredde.
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

Perché per collegarmi al server stringa2.key non funziona. Putty mi da questo errore:

Codice: Seleziona tutto

Unable to use key file "C:\...\stringa2.key" (OpenSSH SSH-2 private key (old PEM format))
login as:
Se digito 'ubuntu' oppure 'stringa2' l'errore è questo:
Immagine
Avatar utente
frapox
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3649
Iscrizione: sabato 31 dicembre 2005, 19:22

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da frapox »

Rispondo per la parte che riguarda il server.

il file authorized_keys, su un host remoto, deve contenere la chiave pubblica, non quella privata!
AUTHORIZED_KEYS FILE FORMAT
AuthorizedKeysFile specifies the files containing public keys for public
key authentication; if this option is not specified, the default is
~/.ssh/authorized_keys and ~/.ssh/authorized_keys2. Each line of the
file contains one key
(empty lines and lines starting with a ‘#’ are ig‐
nored as comments). Public keys consist of the following space-separated
fields: options, keytype, base64-encoded key, comment. The options field
is optional.
Non devi mettere più chiavi sulla stessa riga! E devi usare il formato dei campi specificato qui. Ad es.: ssh-rsa chiave-pubblica commento.
~/.ssh/authorized_keys
Lists the public keys (DSA, ECDSA, Ed25519, RSA) that can be used
for logging in as this user. The format of this file is de‐
scribed above. The content of the file is not highly sensitive,
but the recommended permissions are read/write for the user, and
not accessible by others
.

If this file, the ~/.ssh directory, or the user's home directory
are writable by other users, then the file could be modified or
replaced by unauthorized users. In this case, sshd will not al‐
low it to be used unless the StrictModes option has been set to
“no”.
Occhio ai permessi anche della cartella .ssh. Puoi avere più informazioni dal man ssh da cui ho preso quanto sopra, e che avresti già dovuto consultare di tuo.

Sotto linux ci sarebbe l'utility ssh-copy-id per fare le copie di chiavi ssh pubbliche da un host locale a uno remoto, che fa tutto lei, ma visto che sei su Windows... auguri!
Messaggi privati (via Jabber/XMPP): frapox@suchat.org
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

Grazie per il tuo intervento. Il file authorized_keys, su un host remoto, contiene la chiave pubblica ed è fatto in questo modo:

Codice: Seleziona tutto

ssh-rsa chiave-pubblica commento
I permessi su cartella e file sono questi:
Immagine
Immagine
Con Google Cloud ed Oracle Cloud non carico io la chiave pubblica authorized_keys ma ci pensa il provider in fase di creazione dell'istanza. ssh-copy-id con i servizi che uso non mi serve.
Comunque vorrei precisare che con FileZilla e Putty questo authorized_keys funziona alla grande.
Avatar utente
frapox
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3649
Iscrizione: sabato 31 dicembre 2005, 19:22

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da frapox »

Con FileZilla e Putty quale chiave privata utilizzi?

Esplicito meglio: dove l'hai generata sta chiave? Hai aggiunto poi tu manualmente la chiave pubblica corrispondente all'host remoto?

Non ho idea di cosa ti generi automaticamente in fase di creazione dell'istanza di Google o Oracle ma certamente se vuoi usare l'autenticazione tramite doppia chiave ssh devi generare in locale una coppia privata/pubblica e aggiungere la pubblica all'authorized keys remoto. Questa è la procedura standard.
Messaggi privati (via Jabber/XMPP): frapox@suchat.org
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

Con FileZilla e Putty uso la chiave privata generata da Puttygen che però è una copia di quella fornitami dal provider di rete (Oracle Cloud).
Puttygen lo uso solo per convertire il file .key in .ppk.
La chiave privata e la chiave pubblica non le ho generate io ma le ho scaricate da Oracle all'atto della creazione della macchina virtuale.
Io non ho aggiunto nulla su nessun server, è Oracle che ha aggiunto per me la chiave pubblica sul server. La stessa Oracle mi fornisce la chiave privata per potermi collegare alla macchina. Se uso il file .key su winscp scaricato da Oracle il programma mi fornisce questo avviso:
Immagine
mi converte il file in .ppk e me lo fa salvare sul computer.
Tutte le chiavi sono fornite da Oracle sia quella pubblica che quella privata e funzionano magnificamente sia su FileZilla che Putty ma non su WinSCP. Su Google Cloud stesso discorso con 2 piccole differenze:
1) con Putty quando mi si apre la finestrella nera non digito 'ubuntu' ma 'ubuntu-22-04-lts';
2) la chiave privata e pubblica le creo io con Puttygen e quella pubblica la schiaffo brutalmente in un form (Google Cloud la importa nell'OS all'atto della creazione dell'istanza).
Avatar utente
frapox
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3649
Iscrizione: sabato 31 dicembre 2005, 19:22

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da frapox »

Ok, capisco, è un problema specifico di WinSCP allora, che è un'applicazione per Windows che usa il suo formato di chiavi che deriva da quello standard di OpenSSH.

Lascio la parola a chi usa questo programma allora, e chiedo lo spostamento del thread nella discussione Altri sistemi operativi (trattandosi di un problema specifico di app Windows).
Messaggi privati (via Jabber/XMPP): frapox@suchat.org
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

ok grazie
Avatar utente
frapox
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3649
Iscrizione: sabato 31 dicembre 2005, 19:22

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da frapox »

Mi son ricordato di avere una VM di Ten con WinSCP installato e il mio istinto di smanettone ha preso sopravvento...

Nella finestra di accesso > Avanzate... > SSH > Autenticazione > Strumenti... > Genera una nuova coppia...
E li puoi:
- o generare una nuova coppia di chiavi (tasto Generate) -- quella che io ho testato
- oppure convertire una chiave, suppongo dal formato OpenSsh standard (menù Conversions > import key) a quello di Putty -- non l'ho testato ma la logica mi suggerisce che dovrebbe funzionare così.

Ti salvi ovviamente la chiave privata da qualche parte (possibilmente in un posto dove nessuno può accedervi ma... su Windows è un grande LOL).

In ogni caso, poi torni indietro (chiudi la finestra di generazione), e selezioni la chiave privata or ora inserita, e poi OK.

Se la chiave privata è convertita da quella che hai scaricato precedentemente, e se la corrispettiva pubblica (come dici) è già inserita nel file authorized_keys, una volta inserito il nome dell'host remoto e dell'utente, puoi connetterti.

Se l'hai generata nuova, al primo accesso devi usare la password. Una volta collegato, dal menù Sessione > Installa chiave pubblica nel server.

Dall'accesso successivo potrai usare quindi la chiave privata che hai generato. Funziona tutto, testato or ora su una mia macchina remota (che non è Google o Oracle ma è il discorso è uguale per qualsiasi server OpenSsh).

PS. puoi aggiungere quante chiavi vuoi al tuo authorized_keys remoto, io personalmente ne ho una per ogni host locale; è meglio non copiarle in giro le chiavi SSH private anche perché è facilissimo che si possano perdere o dimenticare in posti non sicuri.
Allo stesso modo, per ogni host locale, ho svariate chiavi private, ognuna per ogni host remoto.
So che sembra un casino ma in realtà è un sistema molto flessibile.
In ogni caso, se perdi una chiave privata, puoi inibire l'accesso semplicemente rimuovendo la riga corrispondente alla chiave pubblica dall'authorized_keys, o commentandola.
Messaggi privati (via Jabber/XMPP): frapox@suchat.org
federicogalimberti
Prode Principiante
Messaggi: 108
Iscrizione: martedì 3 maggio 2022, 23:34

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da federicogalimberti »

Ho provato a creare una nuova chiave e a crearne una nuova ma nulla da fare, non si connette.
Il messaggio è sempre lo stesso:
Registro di autenticazione (vedi registro di sessione per i dettagli):
Usa nome utente "ubuntu".
Il server ha rifiutato la chiave.

Autenticazione fallita.
Dov'è questo 'registro di sessione'? La cosa strana è che come nome utente metto proprio 'ubuntu'!
Avatar utente
frapox
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3649
Iscrizione: sabato 31 dicembre 2005, 19:22

Re: Collegarsi al server con WinSCP e file .ppk

Messaggio da frapox »

federicogalimberti ha scritto:
venerdì 10 giugno 2022, 20:26
Ho provato a creare una nuova chiave e a crearne una nuova ma nulla da fare, non si connette.
Il messaggio è sempre lo stesso:
Registro di autenticazione (vedi registro di sessione per i dettagli):
Usa nome utente "ubuntu".
Il server ha rifiutato la chiave.

Autenticazione fallita.
Dov'è questo 'registro di sessione'? La cosa strana è che come nome utente metto proprio 'ubuntu'!
Ma se ti connetti usando l'utente "ubuntu" e la relativa password con WinSCP riesci a connetterti? (senza chiave)
Messaggi privati (via Jabber/XMPP): frapox@suchat.org
Scrivi risposta

Ritorna a “Altre distribuzioni e sistemi operativi”

Chi c’è in linea

Visualizzano questa sezione: Bing [Bot] e 4 ospiti