Serveur sftp avec authentification par clef

Salut,

je n’ai pas créé de home pour mes utilisateurs ftp. En revanche j’aimerais bien me connecter avec une authentification par clef. J’ai rajouté dans mon fichier :

AuthorizedKeysFile /ftp/.ssh/authorized_keys PubkeyAuthentication yes UsePAM yes Match group sftponly ChrootDirectory /ftp/ X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp

j’ai fait un coup de chmod 600 /ftp/.ssh/authorized_keys puis généré mes clef sur le client et copier la clzf publique mais il me demande le mot de passe.

avez vous une idée ?

Merci

En principe, la clef publique sur le serveur de place dans ~/.ssh/authorized_keys.
Si tu n’as pas donné ce chemin complet dans la config de ssh_config, il ne peut pas le deviner.
Pourquoi ne pas créer un /home, au moins pour toi ?
Sinon, dans cette même config, à "paswordAuthentication, mets ‘no’ et décommente si ça l’est.
Le mieux serait de voir entièrement ta confif /etc/ssh/sshd_config

J’ai créé un home pour mon user sysadmin, mais je voudrais que se soit les utilisateurs du sftp qui se logue par clefs. Dans le fichier deconfig je lui ai mis le chemin complet. Il peut se trouver ailleurs que dans le home ?!

[code]Port 22

Use these options to restrict which interfaces/protocols sshd will bind to

#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2

HostKeys for protocol version 2

HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

Lifetime and size of ephemeral version 1 server key

KeyRegenerationInterval 3600
ServerKeyBits 768

Logging

SyslogFacility AUTH
LogLevel INFO

Authentication:

LoginGraceTime 120
PermitRootLogin no
AllowUsers sysadmin ftp
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile /ftp/.ssh/authorized_keys

Don’t read the user’s ~/.rhosts and ~/.shosts files

IgnoreRhosts yes

For this to work you will also need host keys in /etc/ssh_known_hosts

RhostsRSAAuthentication no

similar for protocol version 2

HostbasedAuthentication no

Uncomment if you don’t trust ~/.ssh/known_hosts for RhostsRSAAuthentication

#IgnoreUserKnownHosts yes

To enable empty passwords, change to yes (NOT RECOMMENDED)

PermitEmptyPasswords no

Change to yes to enable challenge-response passwords (beware issues with

some PAM modules and threads)

ChallengeResponseAuthentication no

Change to no to disable tunnelled clear text passwords

PasswordAuthentication yes

Kerberos options

#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

GSSAPI options

#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding no
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

Allow client to pass locale environment variables

AcceptEnv LANG LC_*

#Subsystem sftp /usr/lib/openssh/sftp-server

Subsystem sftp internal-sftp

Set this to ‘yes’ to enable PAM authentication, account processing,

and session processing. If this is enabled, PAM authentication will

be allowed through the ChallengeResponseAuthentication and

PasswordAuthentication. Depending on your PAM configuration,

PAM authentication via ChallengeResponseAuthentication may bypass

the setting of “PermitRootLogin without-password”.

If you just want the PAM account and session checks to run without

PAM authentication, then enable this but set PasswordAuthentication

and ChallengeResponseAuthentication to ‘no’.

UsePAM yes
Match group sftponly
ChrootDirectory /ftp/
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
[/code]

1/ Essaie en mettant la clef publique dans le serveur sous ton user :
/home/sysadmin/.ssh/authorized_keys le fichier doit être en 600.

2/ Dans /etc/ssh/sshd_config, à la ligne ‘AuthorizedKeysFile’, mets comme réponse : %h/.ssh/authorized_keys

3/ sépare les users sur deux lignes
AllowUsers sysadmin
AllowUsers ftp

En dernier ressort, si ce qui est dessus ne fait rien de mieux,
Mets StrictModes à no au lieu de yes

EDIT :
Tout ça est valable pour n’importe quel ‘user’, sysadmin ou les autres.
Ça ne jouera pas sur leur connexion restreinte.

Comme disait l’autre : the yes needs the no to win against the no…

S’inspirer du guide en trucs et astuces
utilisation-de-clefs-et-raccourcis-dans-ssh-t5472.html

[quote=“etxeberrizahar”]…
S’inspirer du guide en trucs et astuces
utilisation-de-clefs-et-raccourcis-dans-ssh-t5472.html

[quote=“fran.b”]
2) Configuration de ssh

Editer le fichier ~/.ssh/config et rajouter

Host labas
HostName nomtreslong.lichtenstein.loin
User bouvardetpecuchet.flaubert
PasswordAuthentication no
IdentityFile ~/.ssh/labas

[/quote][/quote]
N’oublie pas que notre ami veut une connexion par clefs, ce qui n’est pas le cas de ce que propose François.

merci ca fonctionne avec AuthorizedKeysFile /etc/ssh-pool/%u.pub

et j’ai posé les clef dans le pool en fait elles doivent être sorties du Chroot

[quote=“ricardo”]
N’oublie pas que notre ami veut une connexion par clefs, ce qui n’est pas le cas de ce que propose François.[/quote]
Pas compris pourquoi ce ne serait pas le cas…

Parlons-nous de ces clefs mentionnées dans le guide dès l’intitulé (utilisation-de-clefs-et-raccourcis-dans-ssh) ou des $CLÉS-DU-CHAMP-DE-TIR ?

utilisation-de-clefs-et-raccourcis-dans-ssh-t5472.html

Oui, il s’agit bien des clefs mais François avait exclu le passphrase dans ce tuto et c’est pour ça me semble insuffisant comme sécu.
Je crois d’ailleurs que j’avais rajouté un message ou un lien AVEC une passphrase.