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

Advertisements

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