Usando sftp com chave

Posted: April 20, 2012 in Comandos, Diversos, Linux
Tags: , , ,

Fiz aqui um post falando de vsftp, e falei que precisava limitar os usu√°rios nele com chroot e etc.

Dessa vez, precisei configurar usuários para conectar vim sftp em um servidor, utilizando uma chave de acesso e ainda tinham que ter limitação nos seus respectivos homes também!

Primeiro de tudo, criei os usu√°rios necess√°rios:

# adduser user(s)

Criei um grupo chamado sftponly, justamente para adicionar esses usu√°rios no grupo e fazer as limita√ß√Ķes por grupo depois:

# groupadd sftponly

Defini esse grupo como o padr√£o dos usu√°rios:

#usermod -g sftponly user(s)

E depois desses ajustes, a configuração é feita diretamente no arquivo sshd_config mesmo. Seguem as linhas que alterei/adicionei:

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

#Conf to limit sftp users
Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sft

A linha Subsystem normalmente vem com as op√ß√Ķes padr√Ķes (sftp path-to-sftp) e ent√£o alterei a linha para Subsystem sftp internal-sftp somente para limitar os acessos internos.
Depois na linha Match √© para definir quem voc√™ vai limitar. Se fosse apenas um usu√°rio a linha ficaria Match User user, mas no meu caso, tem mais de um usu√°rio, ent√£o defini que √© um grupo e coloquei o nome do grupo que ter√° limita√ß√Ķes, no caso, o sftponly.
Na linha ChrootDirectory, como o nome j√° fala, √© o local que ser√° aplicado o chroot e nesse caso, como √© um grupo, utilizei o par√Ęmetro /home/%u.
As linhas X11Forwarding e AllowTcpForwarding servem para definir algumas op√ß√Ķes de seguran√ßa e criptografia respectivamente.

Feito isso, reiniciei o serviço de sshd:

# /etc/init.d/ssh restart

Deixei o root como owner dos homes desses usuários que não podem ter acesso à todo o sistema:

# chown root: /home/user(s)

Depois definir o home do usu√°rio (somente executar quando o path padr√£o do home for alterado, caso contr√°rio, n√£o h√° necessidade):

# usermod -d /newhome/user user

Agora, vamos criar as chaves…
Logue com o usu√°rio:

# su – user1

Vamos gerar a chave p√ļblica e privada dele:

$ ssh-keygen -t rsa

Quando criei a chave, deixei o passphrase em branco.
Essa chave fica dentro do diret√≥rio .ssh no home do user. Vamos acessar esse diret√≥rio e copiar a chave p√ļblica para o authorized_keys na pr√≥pria m√°quina:

$ cd /home/user1/.ssh
$ cp id_rsa.oub authorized_keys

Faça o mesmo procedimento com os outros usuários e finalmente poderá logar com os usuários via sftp, utilizando apenas a chave!

Se tiverem alguma d√ļvida, mandem ai nos commentsūüėČ

Fonte aqui

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s