pam_exec pode validar senhas usando um programa externo.
Eu quero permitir que os usuários usem as credenciais do aplicativo Rails para login na conta sftp. Se bem entendi, eu deveria de alguma forma usar o PAM para isso. Mas eu não encontrei nenhuma informação sobre como fazer isso?
pam_exec pode validar senhas usando um programa externo.
Você pode escrever seu próprio módulo PAM, se quiser. Mas a outra solução é provavelmente melhor. Confira um exemplo de módulo PAM aqui: link
Se esta informação do rails estiver em um mysql dbase, você pode configurar o pam_mysql. Existem módulos pam para praticamente tudo.
Aqui está uma para o ftp que eu tenho com o mysql:
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=allow file=/etc/vsftpd/ftpusers onerr=fail
auth sufficient pam_mysql.so user=virt_admin passwd=PASS host=localhost db=DBNAME table=TABLENAME usercolumn=USERNAMECOL passwdcolumn=PASSCOL crypt=3
auth required pam_shells.so
auth include system-auth
account sufficient pam_mysql.so user=virt_admin passwd=PASS host=localhost db=DBNAME table=TABLENAME usercolumn=USERNAMECOL passwdcolumn=PASSCOL crypt=3
account include system-auth
session include system-auth
session required pam_loginuid.so
Você também pode executar um script que despeja periodicamente o nome de usuário: senhas em um arquivo e use o pam_pwdfile. Há uma enorme quantidade de escolhas.
Tags ssh sftp ruby pam ruby-on-rails