mirror of
https://github.com/rwinkhart/MUTN.git
synced 2026-09-05 08:37:20 -04:00
Implement initial support for passphrase-protected SSH keyfiles
This commit is contained in:
+5
-2
@@ -5,6 +5,7 @@ import (
|
|||||||
"github.com/rwinkhart/MUTN/src/backend"
|
"github.com/rwinkhart/MUTN/src/backend"
|
||||||
"github.com/rwinkhart/MUTN/src/sync"
|
"github.com/rwinkhart/MUTN/src/sync"
|
||||||
"os"
|
"os"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
// TempInitCli initializes the MUTN environment based on user input
|
// TempInitCli initializes the MUTN environment based on user input
|
||||||
@@ -31,13 +32,15 @@ func TempInitCli() {
|
|||||||
configSSH := inputBinary("Configure SSH settings (for synchronization)?")
|
configSSH := inputBinary("Configure SSH settings (for synchronization)?")
|
||||||
if configSSH {
|
if configSSH {
|
||||||
// necessary SSH info
|
// necessary SSH info
|
||||||
|
fmt.Print(AnsiBold+"Note:"+backend.AnsiReset, "Only key-based authentication is supported (keys may optionally be passphrase-protected).\nThe remote server must already be in your ~/.ssh/known_hosts file.\n\n")
|
||||||
sshUser := input("Remote SSH username:")
|
sshUser := input("Remote SSH username:")
|
||||||
sshIP := input("Remote SSH IP address:")
|
sshIP := input("Remote SSH IP address:")
|
||||||
sshPort := input("Remote SSH port:")
|
sshPort := input("Remote SSH port:")
|
||||||
sshIdentity := input("SSH private identity file path:") // TODO implement generator and selector
|
sshKey := input("SSH private identity file path:") // TODO implement generator and selector
|
||||||
|
sshKeyProtected := inputBinary("Is the identity file password-protected?")
|
||||||
|
|
||||||
// write config file
|
// write config file
|
||||||
backend.TempInit(map[string]string{"textEditor": textEditor, "gpgID": gpgID, "sshUser": sshUser, "sshIP": sshIP, "sshPort": sshPort, "sshIdentity": sshIdentity})
|
backend.TempInit(map[string]string{"textEditor": textEditor, "gpgID": gpgID, "sshUser": sshUser, "sshIP": sshIP, "sshPort": sshPort, "sshIdentity": sshKey, "sshIDProtected": strconv.FormatBool(sshKeyProtected)})
|
||||||
|
|
||||||
// generate device ID
|
// generate device ID
|
||||||
sync.DeviceIDGen()
|
sync.DeviceIDGen()
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ func input(prompt string) string {
|
|||||||
return strings.TrimRight(userInput, "\n\r ") // remove trailing newlines, carriage returns, and spaces
|
return strings.TrimRight(userInput, "\n\r ") // remove trailing newlines, carriage returns, and spaces
|
||||||
}
|
}
|
||||||
|
|
||||||
// inputHidden prompts the user for input and returns the input as a string, hiding the input from the terminal
|
// InputHidden prompts the user for input and returns the input as a string, hiding the input from the terminal
|
||||||
func inputHidden(prompt string) string {
|
func InputHidden(prompt string) string {
|
||||||
fmt.Print("\n" + prompt + " ")
|
fmt.Print("\n" + prompt + " ")
|
||||||
byteInput, _ := terminal.ReadPassword(int(os.Stdin.Fd()))
|
byteInput, _ := terminal.ReadPassword(int(os.Stdin.Fd()))
|
||||||
password := string(byteInput)
|
password := string(byteInput)
|
||||||
|
|||||||
Reference in New Issue
Block a user