# \[SOLVED\] Drone 1.0.0-rc.1 secret doesn't work

**URL:** https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256
**Category:** Drone Support
**Created:** [December 2, 2018, 5:05pm UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256 "2018-12-02T17:05:57Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![v7lin](https://yyz1.discourse-cdn.com/flex003/user_avatar/drone.discourse.group/v7lin/32/5100_2.png) [@v7lin](https://drone.discourse.group/u/v7lin)
#### Post date: [December 2, 2018, 5:05pm UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256/1 "2018-12-02T17:05:57Z")

</div>

```auto
- name: alpine
  image: alpine
  environment:
    USERNAME:
      from_secret: MAC_USER
  commands:
  - echo ${MAC_USER}/${USERNAME}
  - echo ${DRONE_TAG}/${DRONE_BRANCH}/${DRONE_COMMIT}

- name: ssh-docker-host
  image: appleboy/drone-ssh
  settings:
    host: host.docker.internal
    port: 22
    username:
      from_secret: MAC_USER
    password:
      from_secret: MAC_PASSWORD
    script:
    - date -R
    - system_profiler SPSoftwareDataType
    - bash -lc 'flutter --version'
    - date -R

```

```auto
+ echo /
/
+ echo /master/706345abefd33d3d80409a45e39d71b016e8a0aa
/master/706345abefd33d3d80409a45e39d71b016e8a0aa

```

it doesn’t print MAC\_USER or USERNAME

```auto
======CMD======
date -R
system_profiler SPSoftwareDataType
bash -lc 'flutter --version'
date -R
======END======
out: Mon, 03 Dec 2018 01:01:00 +0800
out: Software:
out: 
out: System Software Overview:
out: 
out: System Version: macOS 10.14.1 (18B75)
out: Kernel Version: Darwin 18.2.0
out: Boot Volume: Macintosh HD
out: Boot Mode: Normal
out: Computer Name: ******** -mbp
out: User Name: 林恒龙 ( ******** )
out: Secure Virtual Memory: Enabled
out: System Integrity Protection: Enabled
out: Time since boot: 3:58
out: 
out: Flutter 0.11.13 • channel beta • https://github.com/flutter/flutter.git
out: Framework • revision 58c8489fcd (3 days ago) • 2018-11-29 19:20:18 -0500
out: Engine • revision 7375a0f414
out: Tools • Dart 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)
out: Mon, 03 Dec 2018 01:01:01 +0800
==========================================
Successfully executed commands to all host.
==========================================

```

---

<div class="post-metadata">

### Author: ![bradrydzewski](https://yyz1.discourse-cdn.com/flex003/user_avatar/drone.discourse.group/bradrydzewski/32/3513_2.png) [@bradrydzewski](https://drone.discourse.group/u/bradrydzewski)
#### Post date: [December 2, 2018, 5:31pm UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256/2 "2018-12-02T17:31:51Z")

</div>

you need to do this:

```diff
  - name: alpine
    image: alpine
    environment:
      USERNAME:
        from_secret: MAC_USER
    commands:
- - echo ${USERNAME}
+ - echo $USERNAME

```

or this:

```diff
  - name: alpine
    image: alpine
    environment:
      USERNAME:
        from_secret: MAC_USER
    commands:
- - echo ${USERNAME}
+ - echo $${USERNAME}

```

This is because when you include a `$` in your yaml it needs to be escaped:

> You can use a $$ (double-dollar sign) when your configuration needs a literal dollar sign. This prevents Drone from interpolating a value, so a $$ allows you to refer to environment variables that you don’t want processed by Drone.

---

<div class="post-metadata">

### Author: ![v7lin](https://yyz1.discourse-cdn.com/flex003/user_avatar/drone.discourse.group/v7lin/32/5100_2.png) [@v7lin](https://drone.discourse.group/u/v7lin)
#### Post date: [December 3, 2018, 1:35am UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256/3 "2018-12-03T01:35:27Z")

</div>

> [@On another topic](https://drone.discourse.group/t/3128/2):
>
> - echo $${USERNAME}

🙂 … thanks a lot …

---

<div class="post-metadata">

### Author: ![v7lin](https://yyz1.discourse-cdn.com/flex003/user_avatar/drone.discourse.group/v7lin/32/5100_2.png) [@v7lin](https://drone.discourse.group/u/v7lin)
#### Post date: [December 3, 2018, 1:54am UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256/4 "2018-12-03T01:54:13Z")

</div>

```auto
- name: build-ios
  image: appleboy/drone-ssh
  environment:
    MAC_USER:
      from_secret: MAC_USER
    MAC_PASSWORD:
      from_secret: MAC_PASSWORD
  settings:
    host: host.docker.internal
    port: 22
    username:
      from_secret: MAC_USER
    password:
      from_secret: MAC_PASSWORD
    command_timeout: 600
    envs: [MAC_USER,MAC_PASSWORD]
    script:
    - date -R
    - echo $${MAC_USER}/$${MAC_PASSWORD}
    - bash -lc 'security unlock-keychain -p 123456 login.keychain'
    - bash -lc 'security unlock-keychain -p $${MAC_PASSWORD} login.keychain'
    - date -R

```

```auto
======CMD======
date -R
echo ${MAC_USER}/${MAC_PASSWORD}
bash -lc 'security unlock-keychain -p ******** login.keychain'
bash -lc 'security unlock-keychain -p ${MAC_PASSWORD} login.keychain'
date -R
======END======
out: Mon, 03 Dec 2018 09:49:29 +0800
out: ********/********
out: Mon, 03 Dec 2018 09:49:29 +0800
err: security: SecKeychainUnlock <NULL>: The user name or passphrase you entered is not correct.
==========================================
Successfully executed commands to all host.
==========================================

```

secret doesn’t work in command line

```auto
- bash -lc 'security unlock-keychain -p $${MAC_PASSWORD} login.keychain'

```

```auto
err: security: SecKeychainUnlock <NULL>: The user name or passphrase you entered is not correct.

```

---

<div class="post-metadata">

### Author: ![bradrydzewski](https://yyz1.discourse-cdn.com/flex003/user_avatar/drone.discourse.group/bradrydzewski/32/3513_2.png) [@bradrydzewski](https://drone.discourse.group/u/bradrydzewski)
#### Post date: [December 3, 2018, 2:26am UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256/5 "2018-12-03T02:26:56Z")

</div>

This is a problem with your bash scripting. You are using single-quotes in your script. When you use single quotes, it is a string literal, and your environment variables will not be expanded.

see this stackoverflow: [https://stackoverflow.com/questions/13799789/expansion-of-variable-inside-single-quotes-in-a-command-in-bash](https://stackoverflow.com/questions/13799789/expansion-of-variable-inside-single-quotes-in-a-command-in-bash)

---

<div class="post-metadata">

### Author: ![bradrydzewski](https://yyz1.discourse-cdn.com/flex003/user_avatar/drone.discourse.group/bradrydzewski/32/3513_2.png) [@bradrydzewski](https://drone.discourse.group/u/bradrydzewski)
#### Post date: [December 3, 2018, 2:31am UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256/6 "2018-12-03T02:31:29Z")

</div>

Also, if I understand your post correctly, you are also trying to run this from command line with `drone exec` (if I misunderstood, you can ignore this). When you run your pipeline locally you need to pass your secrets to `drone exec`. The `drone exec` command does not have any access to secrets stored in the drone server.

```auto
$ cat <<EOF > secrets.txt
MAC_USER=xxxx
MAC_PASSWORD=yyyy
EOF
$ drone exec --secret-file=secrets.txt

```

---

<div class="post-metadata">

### Author: ![v7lin](https://yyz1.discourse-cdn.com/flex003/user_avatar/drone.discourse.group/v7lin/32/5100_2.png) [@v7lin](https://drone.discourse.group/u/v7lin)
#### Post date: [December 3, 2018, 2:43am UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256/8 "2018-12-03T02:43:03Z")

</div>

ssh should use

```auto
bash -lc 'xxx'

```

load environment

---

<div class="post-metadata">

### Author: ![v7lin](https://yyz1.discourse-cdn.com/flex003/user_avatar/drone.discourse.group/v7lin/32/5100_2.png) [@v7lin](https://drone.discourse.group/u/v7lin)
#### Post date: [December 3, 2018, 2:51am UTC](https://drone.discourse.group/t/solved-drone-1-0-0-rc-1-secret-doesnt-work/11256/9 "2018-12-03T02:51:56Z")

</div>

🙂 thanks a lot, I have solved it.

```auto
- name: ssh-docker-host
  image: appleboy/drone-ssh
  environment:
    MAC_USER:
      from_secret: MAC_USER
    MAC_PASSWORD:
      from_secret: MAC_PASSWORD
  settings:
    host: host.docker.internal
    port: 22
    username:
      from_secret: MAC_USER
    password:
      from_secret: MAC_PASSWORD
    envs: [MAC_USER,MAC_PASSWORD]
    script:
    - date -R
    - system_profiler SPSoftwareDataType
    - bash -lc 'flutter --version'
    - echo $MAC_USER/$MAC_PASSWORD
    - echo $${MAC_USER}/$${MAC_PASSWORD}
    - bash -lc 'security unlock-keychain -p '$${MAC_PASSWORD}' login.keychain'
    - date -R

```
