|  | @@ -69,7 +69,7 @@ func init() {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	// Determine and create .ssh path.
 | 
	
		
			
				|  |  |  	SshPath = filepath.Join(homeDir(), ".ssh")
 | 
	
		
			
				|  |  | -	if err = os.MkdirAll(SshPath, os.ModePerm); err != nil {
 | 
	
		
			
				|  |  | +	if err = os.MkdirAll(SshPath, 0700); err != nil {
 | 
	
		
			
				|  |  |  		log.Fatal(4, "fail to create SshPath(%s): %v\n", SshPath, err)
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -156,6 +156,17 @@ func saveAuthorizedKeyFile(key *PublicKey) error {
 | 
	
		
			
				|  |  |  		return err
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	defer f.Close()
 | 
	
		
			
				|  |  | +	finfo, err := f.Stat()
 | 
	
		
			
				|  |  | +	if err != nil {
 | 
	
		
			
				|  |  | +		return err
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	if finfo.Mode().Perm() > 0600 {
 | 
	
		
			
				|  |  | +		log.Error(3, "authorized_keys file has unusual permission flags: %s - setting to -rw-------", finfo.Mode().Perm().String())
 | 
	
		
			
				|  |  | +		err = f.Chmod(0600)
 | 
	
		
			
				|  |  | +		if err != nil {
 | 
	
		
			
				|  |  | +			return err
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	_, err = f.WriteString(key.GetAuthorizedString())
 | 
	
		
			
				|  |  |  	return err
 |