mirror of
				https://github.com/juanfont/headscale.git
				synced 2025-10-28 10:51:44 +01:00 
			
		
		
		
	Add generate private-key command
This commit adds a command to generate a private key for headscale. Mostly useful for systems were you drive the deployment from another machine and use a secret management system.
This commit is contained in:
		
							parent
							
								
									4d60aeae18
								
							
						
					
					
						commit
						126e694f26
					
				
							
								
								
									
										41
									
								
								cmd/headscale/cli/generate.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								cmd/headscale/cli/generate.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,41 @@
 | 
			
		||||
package cli
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"github.com/spf13/cobra"
 | 
			
		||||
	"tailscale.com/types/key"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	rootCmd.AddCommand(generateCmd)
 | 
			
		||||
	generateCmd.AddCommand(generatePrivateKeyCmd)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var generateCmd = &cobra.Command{
 | 
			
		||||
	Use:   "generate",
 | 
			
		||||
	Short: "Generate commands",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var generatePrivateKeyCmd = &cobra.Command{
 | 
			
		||||
	Use:   "private-key",
 | 
			
		||||
	Short: "Generate a private key for the headscale server",
 | 
			
		||||
	Run: func(cmd *cobra.Command, args []string) {
 | 
			
		||||
		output, _ := cmd.Flags().GetString("output")
 | 
			
		||||
		machineKey := key.NewMachine()
 | 
			
		||||
 | 
			
		||||
		machineKeyStr, err := machineKey.MarshalText()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			ErrorOutput(
 | 
			
		||||
				err,
 | 
			
		||||
				fmt.Sprintf("Error getting machine key from flag: %s", err),
 | 
			
		||||
				output,
 | 
			
		||||
			)
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		SuccessOutput(map[string]string{
 | 
			
		||||
			"private_key": string(machineKeyStr),
 | 
			
		||||
		},
 | 
			
		||||
			string(machineKeyStr), output)
 | 
			
		||||
	},
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user