-
In the current Semaphore setup the private keys get copied to the filesystem to execute the ansible playbook or to perform a git checkout. This private key gets deleted after the execution after this issue if implemented if I'm correct. This is an improvement, but an attacker can still copy the private key during the git clone or ansible execution. If this is the current implementation, it'd be nice if this behaviour is documented in the documentation so it's clear to everyone. Personally, I'd like to have the option to specify an SSH config that will be used for a git clone or ansible-playbook execution this would also allow to have the private key, not the filesystem use the https://www.man7.org/linux/man-pages/man5/ssh_config.5.html This would also help to get support for Hardware tokens. Another solution to not have the private key on the filesystem is to implement a PKCS11 provider in Semaphore (not sure how easy this can be implemented in Golang). |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
Start from 2.9.45 Semaphore doesn't store private keys to file system but uses internal SSH agent: https://pkg.go.dev/golang.org/x/crypto/ssh/agent. Start from 2.9.64 Semaphore doesn't store any Ansible passwords to file system but uses Stdin to send them to ansible-playbook. |
Beta Was this translation helpful? Give feedback.
Start from 2.9.45 Semaphore doesn't store private keys to file system but uses internal SSH agent: https://pkg.go.dev/golang.org/x/crypto/ssh/agent.
Start from 2.9.64 Semaphore doesn't store any Ansible passwords to file system but uses Stdin to send them to ansible-playbook.