MCPcopy Index your code
hub / github.com/devspace-sh/devspace / getPublicKey

Function getPublicKey

pkg/devspace/services/ssh/keys.go:121–159  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

119}
120
121func getPublicKey() (string, error) {
122 keyLock.Lock()
123 defer keyLock.Unlock()
124
125 _, err := os.Stat(DevSpaceSSHFolder)
126 if err != nil {
127 err = os.MkdirAll(DevSpaceSSHFolder, 0755)
128 if err != nil {
129 return "", err
130 }
131 }
132
133 // check if key pair exists
134 _, err = os.Stat(DevSpaceSSHPrivateKeyFile)
135 if err != nil {
136 pubKey, privateKey, err := MakeSSHKeyPair()
137 if err != nil {
138 return "", errors.Wrap(err, "generate key pair")
139 }
140
141 err = os.WriteFile(DevSpaceSSHPublicKeyFile, []byte(pubKey), 0644)
142 if err != nil {
143 return "", errors.Wrap(err, "write public ssh key")
144 }
145
146 err = os.WriteFile(DevSpaceSSHPrivateKeyFile, []byte(privateKey), 0600)
147 if err != nil {
148 return "", errors.Wrap(err, "write private ssh key")
149 }
150 }
151
152 // read public key
153 out, err := os.ReadFile(DevSpaceSSHPublicKeyFile)
154 if err != nil {
155 return "", errors.Wrap(err, "read public ssh key")
156 }
157
158 return base64.StdEncoding.EncodeToString(out), nil
159}

Callers 1

startSSHWithRestartFunction · 0.85

Calls 3

MakeSSHKeyPairFunction · 0.85
LockMethod · 0.80
UnlockMethod · 0.80

Tested by

no test coverage detected