@ -358,6 +358,18 @@ func appendAuthorizedKeysToFile(keys ...*PublicKey) error {
sshOpLocker . Lock ( )
sshOpLocker . Lock ( )
defer sshOpLocker . Unlock ( )
defer sshOpLocker . Unlock ( )
if setting . SSH . RootPath != "" {
// First of ensure that the RootPath is present, and if not make it with 0700 permissions
// This of course doesn't guarantee that this is the right directory for authorized_keys
// but at least if it's supposed to be this directory and it doesn't exist and we're the
// right user it will at least be created properly.
err := os . MkdirAll ( setting . SSH . RootPath , 0700 )
if err != nil {
log . Error ( "Unable to MkdirAll(%s): %v" , setting . SSH . RootPath , err )
return err
}
}
fPath := filepath . Join ( setting . SSH . RootPath , "authorized_keys" )
fPath := filepath . Join ( setting . SSH . RootPath , "authorized_keys" )
f , err := os . OpenFile ( fPath , os . O_CREATE | os . O_WRONLY | os . O_APPEND , 0600 )
f , err := os . OpenFile ( fPath , os . O_CREATE | os . O_WRONLY | os . O_APPEND , 0600 )
if err != nil {
if err != nil {
@ -645,6 +657,18 @@ func rewriteAllPublicKeys(e Engine) error {
sshOpLocker . Lock ( )
sshOpLocker . Lock ( )
defer sshOpLocker . Unlock ( )
defer sshOpLocker . Unlock ( )
if setting . SSH . RootPath != "" {
// First of ensure that the RootPath is present, and if not make it with 0700 permissions
// This of course doesn't guarantee that this is the right directory for authorized_keys
// but at least if it's supposed to be this directory and it doesn't exist and we're the
// right user it will at least be created properly.
err := os . MkdirAll ( setting . SSH . RootPath , 0700 )
if err != nil {
log . Error ( "Unable to MkdirAll(%s): %v" , setting . SSH . RootPath , err )
return err
}
}
fPath := filepath . Join ( setting . SSH . RootPath , "authorized_keys" )
fPath := filepath . Join ( setting . SSH . RootPath , "authorized_keys" )
tmpPath := fPath + ".tmp"
tmpPath := fPath + ".tmp"
t , err := os . OpenFile ( tmpPath , os . O_RDWR | os . O_CREATE | os . O_TRUNC , 0600 )
t , err := os . OpenFile ( tmpPath , os . O_RDWR | os . O_CREATE | os . O_TRUNC , 0600 )